Nobody answered the question that I (implicitly) raised a few times: how do you branch ghc with a mixed use of git and darcs? (I don't know too much of git, but AFAIK, it's notion of branches is pretty different of that of darcs).

As far as I can tell, you do it in much the same way as the current branching scheme with darcs-only. i.e. make a separate copy of a repo for each of the branched library packages. There is already scripting support for using this model in ./darcs-all (and ./sync-all if the toplevel repo is in git), although you may need to do the initial copying (branching) of repositories by hand.

If all the repos were in git, it would be no different. In particular, using git submodules does not automate any of the initial copying/branching of the library packages - you would still need to do that manually (or script it somehow).

And secondly, if this is a devel branch (as opposed to a release branch) how do you merge?

If you mean merging HEAD changes into the devel branch, then "./sync- all pull" should have it all scripted already. (But if this creates conflicts with the devel stuff, you will need to resolve them manually, the same with git as with darcs.)

If you mean merging the devel stuff back into HEAD, then I guess it is a "./sync-all pull" (and resolve conflicts) followed by "./sync-all push".

Incidentally, even if all the repos are in git submodules, you still _really_ want a sync-all script to automate this for you. Read
   http://git.or.cz/gitwiki/GitSubmoduleTutorial
for some terrifying gotchas like
   "It's not safe to run "git submodule update" if you've made
    changes within a submodule. They will be silently overwritten."

Regards,
   Malcolm

_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to