From: Andreas Ericsson Date: Tue, 18 Nov 2008 07:47:32 GMT Subject: Re: git-submodule/before-rebase hook Message-ID: <49227314.4080709@op5.se> In-Reply-To: justin wrote: > I just discovered git-submodule today, and already I can see it making > my life a lot easier. I develop several modules that are used in two > different projects, and being able to check in changes from the > submodule in either project is something I have been wanting to do for a > while. But there is one shortcoming in git-submodule that I haven't > figured out how to overcome... yet. > > When I make a change to a submodule and push that change to the parent > repository, the change appears to all other users of the repository as a > modification to the submodule commit version. It shouldn't, unless you push the change into a non-bare copy of a checked out submodule, but that would be rather insane as the submodule rather than the superproject then gets to decide which version of the submodule to use. > A few people at our > company use 'git ci -a' to add all of their changes, and I'm afraid they > are going to unknowingly revert the submodule back to a previous > version. Ah, now I see where you're coming from. After you issue "git pull" in the submodule you have to sync the new version of the submodule to the superproject using "git submodule sync". > So my plan was to add a post-pull hook that does 'git submodule > update --init', so that people who don't do development on the submodule > will get updates every time they pull. Ok, I didn't. Why do you pull into the submodules if you don't want to sync the code so the superproject gets the benefit of the changes? > Unfortunately though, there is no > such hook in git. I thought post-merge was going to work, but most > people at our company use 'git pull --rebase', and post-merge isn't > called in that case. The post-checkout hook is called, but the pull > hasn't been completed at that point, so updating the submodule doesn't > work. Alas, if only there was a post-rebase hook. > > Any ideas other than patching every employee's git source to add a > post-rebase hook? > Yes. Only pull in submodules if you intend to sync them afterwards. -- Andreas Ericsson andreas.ericsson@op5.se OP5 AB www.op5.se Tel: +46 8-230225 Fax: +46 8-230231