[ECOS] Re: DVCS choice

Alex Schuilenburg alexs@ecoscentric.com
Mon Oct 12 22:12:00 GMT 2009

Øyvind Harboe wrote:
> Perhaps a choice between git & hg is unecessary?
> There are conversion tools between git/hg so the question
> what to present to end users and what maintainers
> use can be two different version control systems. There
> could even be official git & hg mirrors regardless of
> "official" choice.
You still need to publish some way for users to be able to contribute
easily, and having multiple options is just going to confuse the average
Joe.  Besides, you still need somewhere for contributions to be collated
and that has to be based on something.

Anyway, I don't see a need to present multiple DRCS repositories.  You
can push/pull hg into git (http://hg-git.github.com/) and I expect
vice-versa, so there is little point of mirrors in different formats
IMHO.  You even say so below ;-)

> You can even push/pull to/from git/hg with any combination
> of client & server. Spooky! Bet there are some hitches
> when you actually try that at home!
None that I have come across, but then I have only been playing with the
basic operations like push, pull, commit, revert, rollback, tag, branch,
merge.  I expect an octopus merge between different DRSC systems will be
quite interesting ;-)

> Certainly if someone has a strict policy of not using X
> on the client, then there is nothing that stops them from
> converting to their preferred DVCS client.
> I just converted from mercurial to git on my laptop and
> it took ~10-20 minutes. Used hg-fast-export.
Around 7 minutes on our main server, and then just for the hell of it, I
converted the git repo back to hg to see if it came back the same.  diff
-r -q -x .hg ... said it did :-)

> I couldn't find any branches in the git repository, but I
> suppose that there weren't any in the mercurial repository
> either.
Correct, there were none.  The three CVS branches were just cloned.  I
could have made the 2.0 and 3..0 releases into branches and just cloned
the flash_v2 branch, but then the conversion would have been a little
bit more painful since most of the release changes were just duplicated
into the trunk rather than actually being merged after the release.  If
there was a clear merge point in the CVS repo, I would have done it -
there looked like a couple which I tried, but there were just too many
conflicts resulting from the duplicate checkins.  My guess is the
maintainers were being paranoid about forgetting to pull in release
changes into the trunk so they made duplicate checkins as they went.

Also little point in spending any effort "fixing" the repo to reflect
what might have happened if a DRCS was used - we need something moving
forward that preserves the history, which we now have.

> git checkout afterwards took 10 seconds or so. DVCS
> is insanely much faster than CVS for those operations...
Indeed. Here are some real hg times from our main server.

bash% time hg clone ecos ecos-test-with-update
updating working directory
8085 files updated, 0 files merged, 0 files removed, 0 files unresolved

real    0m8.655s
user    0m5.672s
sys     0m2.293s
bash% time hg clone -U ecos ecos-test-without-update

real    0m1.777s
user    0m0.651s
sys     0m1.103s
bash% time hg -R ecos-test-without-update update
8085 files updated, 0 files merged, 0 files removed, 0 files unresolved

real    0m7.010s
user    0m5.579s
sys     0m1.402s

-- Alex Schuilenburg

Managing Director/CEO                                eCosCentric Limited

Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

More information about the Ecos-discuss mailing list