Re: [PATCH v2] git-submodule add: Add -r/--record option.
- From
Shawn Pearce <spearce@spearce.org>
- Date
- Oct 28, 2012, 21:59 UTC
- Message-ID
- <CAJo=hJt_A5FCCcvR=sZ5Ni+-ZGq+MjxqkONbh9k+A46xBH9jzA@mail.gmail.com>
- In-Reply-To
- <508D9A12.6010104@web.de>
On Sun, Oct 28, 2012 at 1:48 PM, Jens Lehmann <Jens.Lehmann@web.de> wrote:
Show 16 quoted lines
> Am 23.10.2012 22:55, schrieb W. Trevor King: >> As Phil pointed out, doing anything with this variable is ambiguous: >> >> On Mon, Oct 22, 2012 at 06:03:53PM -0400, Phil Hord wrote: >>> Some projects now use the 'branch' config value to record the tracking >>> branch for the submodule. Some ascribe different meaning to the >>> configuration if the value is given vs. undefined. For example, see >>> the Gerrit submodule-subscription mechanism. This change will cause >>> those workflows to behave differently than they do now. > > I don't have a problem with the amount or complexity of the code being > added, But by adding that option we may be giving the impression that it > is officially sanctioned, or that it will be kept up to date by further > submodule commands. I added Shawn to the CC, maybe he can comment on how > the "branch" setting is used in Gerrit and what he thinks about adding > code to set that with "git submodule add -r <branch> ..." to core git.
Looks like the Gerrit meaning is basically the same as Ævar's. Gerrit updates the parent project as if you had done:
$ git submodule foreach 'git checkout $(git config --file $toplevel/.gitmodules submodule.$name.branch) && git pull' $ git commit -a -m "Updated submodules" $ git push
and it does this automatically each time the submodule's branch is modified by the Gerrit server.
On Tue, Oct 23, 2012 at 2:57 PM, W. Trevor King <wking@tremily.us> wrote:
> I'm not clear on what that means, but they accept special values like > '.', so their usage is not compatible with Ævar's proposal.
"." is a special value to mean use the parent project's branch name. So its more like this:
$ git submodule foreach 'git checkout $(git --git-dir $toplevel/.git read-ref HEAD | sed s,^refs/heads/,,) && git pull' $ git commit -a -m "Updated submodules" $ git push
We use "." in Gerrit to make branching an entire forest of projects easier. Setting up dev-fix-yy in the parent project will automatically track dev-fix-yy in each submodule.