Aaron Griffin wrote:
On Sun, Feb 22, 2009 at 10:12 PM, Sebastian Nowicki <sebnow@gmail.com> wrote:
On 23/02/2009, at 12:57 PM, Bryan Ischo wrote:
OK, so I guess I really need to get into the habit of using git-rebase -i.
Yes, git rebase is one of the most wonderful things about git.
git rebase -i, git add -p, and git stash are my three most "omg awesome" git commands.
Just curious ... what's so awesome about git stash? It seems to me that it is only necessary because git doesn't support multiple branches in the same tree. The Perforce (and some DVCS systems like Bazaar) way is to root each branch at a different subdirectory of your repository top-level directory in your local filesystem. Then you can work on files in multiple branches simultaneously without having to 'switch' your view between them constantly, 'stashing' and 'unstashing' changes all the time. Honestly, there are two things which I think suck about git (I realize that many things that have been difficult for me have simply been from my lack of knowledge of git, so I don't consider those things sucky, they're just things I need to learn; but the following things actually do suck): - A single branch-based 'view' that switches your files around in-place as you change which branch you are on, instead of keeping branches in separate subdirectories - Lack of rename tracking. Yeah, I know, git claims that it can do it after the fact when examining change histories but I've tried various scenarios and it just doesn't work very well, and even when it does, requires stupidly complex options to git commands to enable git to discover renames in the history correctly I think the ideal DVCS would have the semantics of Bazaar, but with the speed of git. I think this could be accomplished if Bazaar were written in C or C++ instead of Python - having to start up the Python interpreter for every single Bazaar command is ... unfortunate. And from what I've read, Bazaar has real performance problems with large trees or long histories. Thanks, Bryan