Source Control system results and discussion

Jeffrey Hsu hsu at dragonflybsd.org
Tue Oct 28 01:24:41 PDT 2008


  >  I propose first that the DragonFly repository be officially accessible
  >  via both Git and Mercurial.  Pick your favorite, for read access.  I
  >  do not think there is any argument here :-)

This is a good idea.  Even projects that are supposedly using git, like
the Linux kernel, provide a Mercurial mirror, for example, at
http://kernel.org/hg, so clearly even those projects have found some
utility in having both.  I expect new committers coming on to only
have to learn one and it's easier to learn Mercurial and focus more
on coding than the source code control system.

  >  The question now devolves down to those people who commit into the
  >  system.  Do we use Git as the master repository and Mercurial as the
  >  slave, or do we use Mercurial as the master repository and Git as the
  >  slave?
  > 
  >  I propose second that we use Git as the master repository and Mercurial
  >  as the slave, but allow committers to commit to either and auto-merge
  >  in both directions. 
  > 
  >  I believe this can be done by using Git's superior branch management
  >  to create a staging branch in Git that is mirrored from Mercurial,
  >  and then merge that branch into Git's master branch.  All automated,
  >  of course.  Several git users, such as corecode and I, would have no
  >  trouble writing such a script.
  > 
  >  * I am worried that Mercurial's branch management is not good enough
  >    to cross-merge from git if mercurial is the master.  I am also
  >    worried about our older release branches.  Even though we may not
  >    do a clean initial load into git for non-HEAD branches it should be
  >    fairly easy to clean things up.
  > 
  >  * We would use commit scripts to trigger the merge operation immediately
  >    upon a commit to either repository, plus a cron job once an hour to
  >    catch any lost triggers.
  > 
  >    Only clean merges will auto-commit.  A failure will require manual
  >    intervention using Git, which should be trivial to handle as all the
  >    data will be in the Git staging and master branches.  If the 
  >    git->mercurial merge fails (only possible if a conflicting commit
  >    is made to git and mercurial simultaniously), then the act of
  >    resolving the conflict in the git + staging_branch_from_hg will
  >    auto-correct on the next mirror operation from git to mercurial.
  >    So no surgery within mercurial will be needed.

All this sounds eminently doable and I'd even volunteer to do write
the scripts or maintain the two repositories.

  >  Please discuss any or all of the above points or put forth your own
  >  proposals for discussion.  Try to add only new and useful information,
  >  this isn't a vote thread :-).  I do expect far fewer people to post
  >  in this thread then who voted.
  > 
  >  Our deadline is November 10th.  I want to be up and running with the new
  >  repository as our master by November 15th.






More information about the Kernel mailing list