The Thing About Git
tomayko.com
tomayko.com
On a side note: Am I the only person that couldn't see the site in firefox on linux? It crashed my browser every time I opened it and I ended up using lynx to view the article.
and probably a few more
For instance, git add --patch can be done with hg record.
I think they do away with this for simplicity. Inline branching doesn't make that much conceptual sense a lot of the time. That said, I wish Hg had it.
By allowing for local branches you enable multiple parallel lines of development in one repository. It saves space, it saves effort, it saves time, and it's a cleaner way to organize your projects (all in one place rather than scatted across a directory listing). It also means you can evade the tainted-working-copy problem entirely by keeping short-lived, private, parallel branches of current feature development. Personally, I much prefer this mode of operation when I have the foresight to do it.
Also, I'm not sure I agree git has a particularly steep learning curve. I know that in the pre-1.5 days, everyday usage required a lot more knowledge of the plumbing, but today, the high-level commands seem pretty straightforward to me. Sure, the index takes some getting used to (and a very nice tool it turns out to be, too), but is that really the only thing that makes you say that git has a steep learning curve?
Seriously, there's a project by Carl Worth to quite literally port the Mercurial book to Git. See http://cworth.org/hgbook-git/
i suppose it has happened that i've got two sets of updates in progress that are tangled up somewhat, but i try to avoid such things, and usually succeed.
svn commit file1 file2 somemorestuff
Surely you just commit the files you want, and leave out the ones you're still working on :/
What am I missing?
I still say it's better to avoid that mess in the first place.
True, but some make it much easier than others. Git is one of the easy ones.
I still say it's better to avoid that mess in the first place.
The article addressed this, and concluded as follows:
Here’s a general principle I would like my VCS to acknowledge: moving from the present point B to some desired point C should not require a change in behavior at point A in the past. More simply, the phrase: “you should have,” ought to set off alarm bells.
Honestly, no offense meant, but I'm starting to wonder if Subversion is the Blub of source control systems.
If I start to fix bug B on top of a half implemented feature A, I end up with a mess.
I don't understand why you would work that way, and don't understand what git solves that svn doesn't. You still have to untangle the mess yourself.