Hello Simon, On 2015-01-06 at 10:59:44 +0100, Simon Peyton Jones wrote: > I'm very confused about the workflow for updating submodules. I want > to update several (to remove redundant constraints from contexts) > which are maintained by GHC HQ. But for libraries/parallel I find: > >
> * There is no .git/config in libraries/parallel. (Whereas > there is for another submodule, libraries/hoopl.) > * There is, however, a .git file which points to > .git/modules/libraries/parallel That's most likely because libraries/hoopl wasn't created via `git submodule` but rather inherited from a Git checkout where libraries/hoopl was an decoupled (not yet submodule) sub-repo... In any case, if you manage Git remotes (while in libraries/hoopl) via the `git remote` command, Git takes care of following the "symlinked" .git folder... > * In .git/modules/libraries/parallel/config, I see a url of > https://git.haskell.org/packages/parallel.git. But I can't push to > this URL. yes, that's our mirrored copy of github.com/haskell/parallel/ > * That matches the url in > https://ghc.haskell.org/trac/ghc/wiki/Repositories, but contradicts > the url in 'packages', which says > ssh://g...@github.com/haskell/parallel.git yes, that's exactly the upstream URL you're supposed to push to... (and since it's a ssh:// protocl url, it means you should have push-rights there) > * I don't understand what URL should be expected for submodules with > "-" in the 'upstream url' column of the 'packages' file. It says "-" > means 'this is a submodule', but parallel is certainly a submodule and > doesn't have "-". The comment there is probably a bit misleading; "-" in the "upstreamurl" field just means that the official upstream repo is at git.haskell.org, and you should use the usual ssh://git.haskell.org/... URL for pushing... > But so is hoopl, which does have "-". > I tried a minimal change of adding > pushurl = ssh://g...@git.haskell.org/packages/hoopl.git are you confusing 'hoopl' with 'parallel' here? hoopl's upstream is in fact at git.haskell.org, but parallel lives at github.com/haskell/parallel ... > to .git/modules/libraries/parallel/config. But when I tried to push I got > simonpj@cam-05-unx:~/code/HEAD-2/libraries/parallel$ git push > Counting objects: 7, done. > Delta compression using up to 32 threads. > Compressing objects: 100% (4/4), done. > Writing objects: 100% (4/4), 410 bytes, done. > Total 4 (delta 3), reused 0 (delta 0) > remote: W refs/heads/master packages/parallel simonpj DENIED by refs/.* > remote: error: hook declined to update refs/heads/master > To ssh://g...@git.haskell.org/packages/parallel.git > ! [remote rejected] HEAD -> master (hook declined) > error: failed to push some refs to > 'ssh://g...@git.haskell.org/packages/parallel.git' > > So I'm thoroughly stuck. I can't push my main patch until I push the > submodule patches. What do I do? > And would it be possible to update the wiki pages to make this clear? > Especially > > * https://ghc.haskell.org/trac/ghc/wiki/Repositories > > * > https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules > > Thanks > Simon > _______________________________________________ > ghc-devs mailing list > ghc-devs@haskell.org > http://www.haskell.org/mailman/listinfo/ghc-devs -- "Elegance is not optional" -- Richard O'Keefe _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs