I still don't use a dVCS, but I find in-place branches difficult for me. Not conceptually, but
I like to keep different branches around, like my Debian packages: I sometimes maintain both a
backport to Debian stable and a version of the same package in unstable (i.e. the current
development part). I would find it quite inconvenient to commit anything I currently try in
the development branch only to be able to safely switch to the backport's branch. However, I
know that some people like to commit any (reasonably sized) changes they do, while I usually
like to try my changes at least on a very basic level before committing and doing more
extensive tests. This sometimes means that I have changes uncommitted for days at a time.
Certainly something many developers don't like to have.
Anyway, based on this, I like mercurial better than git.
On the local storage of all the history vs. referencing the remote repository, I also prefer
the mercurial way. Once I cloned/branched a remote repository, I have all history at my
fingertips (not just the commit messages), even if the remote repository becomes unreachable
for some reason.
Posted Mar 20, 2008 11:15 UTC (Thu) by engla (guest, #47454)
[Link]
A git user would use a "topic branch" for each such string of unacknowledged changes. Then
when you have evalutated the changes just merge the branch or delete it at will.
Arguably a system that doesn't let you commit for days reminds me of svn, patch+diff or
similar old-fashioned systems.