
On 12/10/2013 11:15, Herbert Valerio Riedel wrote:
Hello Simon!
On 2013-10-11 at 12:59:07 +0200, Simon Marlow wrote:
[...]
This is great. With a bit of extra tool support for this we could actually do without submodules and go back to individual repos. Checking out a GHC revision in the past could consist of querying your ghc-complete repo for the fingerprint and then running the fingerprint tool.
(unless you haven't guessed, I'm not a huge fan of submodules)
What problems do you see with Git submodules specifically? I'm asking because I believe that we might be able address most of the concerns you have by tooling (e.g. by server-side hooks to enforce inter-repo invariants with respect to Git submodules, as well as client-side scripts to automate common developer tasks) so that the perceived pain of submodules can be reduced enough to make the change-function significantly more favorable for switching to Git submodules (+ folding some repos which are very tightly coupled/entangled to GHC into ghc.git itself, such as testsuite or nofib)
If we can get the tooling right I would probably have no objections to submodules. Right now it's a bit of a pain though. - extra steps in the workflow for modifying a library (git checkout master, etc.) - possibility of losing local changes by git submodule update, if you have made local changes in your copy of the library. Perhaps what I want here is for "sync-all --rebase" to do "git submodule update --rebase". - "sync-all new" doesn't work any more. I used to use this to see what patches were unpushed in my tree relative to upstream. I don't mind what the command is, but there needs to be an easy way to do this. - Difficulties with having a local mirror of the GHC repos. Does "sync-all -r <root> remove update-url" work with submodules now? Does "./sync-all get" get the submodules from the same place as the GHC repo? Cheers, Simon