[Scons-dev] Version control (was Re: Scons 2.3.2 regression, D tool...)

anatoly techtonik techtonik at gmail.com
Mon Aug 11 10:23:39 EDT 2014


On Sat, Aug 9, 2014 at 10:59 PM, Mark A. Flacy <mflacy at verizon.net> wrote:
>
> I've been using DVCs since 2003 (Tom Lord's larch, followed by tla, hg, bzr,
> and recently git).  I've even looked at fossil and darcs.

CVS, SVN, Hg, Git to the core. A little experience with Bazaar and Darcs.

In summary - Hg is the most powerful, flexible, easy to use, customize and
extend, with preference over history consistency. But Git does one thing right -
it concentrates on the workflow and developer convenience hacking all other
things on the way. That's my impression. Once I understood that Git really
allows to edit anything and erase anything and mess up with remote repo, it
suddenly became very clear.

Things I really-really miss in Git are `hg out` and `hg in` to review incoming
patches. Also missed "hg record" until discovered "git commit -p". I like
"git rebase -i", but at the same time MQ does a lot more for me (like
excluding changes and editing patches by hand), so there is no discomfort.

> Such as git thinks that history is malleable by default while none of the
> other DVCSs do.  (That's why you have to turn on the rebase extension to hg;
> it's part of the base code, but using it changes the basic model.)

And changes it for good. I always rebase my changes when refreshing pull
requests, because it makes history more readable.

> http://mercurial.selenic.com/wiki/BranchingExplained describes the differences
> rather well

I don't remember this document being particularly useful for the one who
don't have any branch model in his head. The branch branch branch terminology
makes a big mess in the head after some minutes, so I liked how this
article explained it with the concept of lineages.

http://jhw.dreamwidth.org/1868.html

> http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/ also has
> good information.
>
> From what I've read on hg's bookmark implementation and what I've seen
> recently on git's branching, I think that
> http://mercurial.selenic.com/wiki/Bookmarks is a very close analog.  Note that
> the bookmark namespace is global, not local like the git branch namespace.

There is a good article about Mercurial written by Git user
http://demianbrecht.github.io/vcs/2014/07/31/from-git-to-hg/
and I see that our workflow should be adapted to it.

I may need to describe my own workflow, but it is a lengthy process.
-- 
anatoly t.


More information about the Scons-dev mailing list