git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Feature Request: Branch-Aware Submodules

From
HAHedges Alexander <ahedges@student.ethz.ch>
Date
Sep 1, 2016, 11:34 UTC
Message-ID
<AAED3CA2-3BDA-49CF-8930-FBC96F1EFE34@student.ethz.ch>
In-Reply-To
<CA+P7+xqA_3a8EPZ=2Y5pgkL+N=_F1v5pfyzErwest9aoKZC37w@mail.gmail.com>

Since I don’t want to change any history in the subproject, to me the most expected behavior would be:

git submodule update —-recursive
with submodule.*.update set to the command:

``` #!/bin/bash

branches=`git branch --points-at "$1"`
if [ ! $branches ] ; then
    git checkout "$1"
    echo "do normal checkout"
else
    points_to_master=
    other_branch=
    for b in $branches ; do
        if [ "$b" = "master" ] ; then
            points_to_master="true"
        else
            other_branch="$b"
        fi
    done
    if [ points_to_master ] ; then
        git checkout master
    else
        git checkout "$other_branch"
    fi
fi
```

Now, this is not perfect and I’m sure I’ll refine it whenever I find it doesn’t suit my needs, but I’m sure you can see the intentions here. I’m also not quite sure whether to prioritize tags over branches or the other way around.

Thanks for the suggestion. I hope this or a similar behavior could sometime become the default in git. Until the suggested quick fix will do for me.

Best Regards, Alexander Hedges

Show 24 quoted lines
> On 29 Aug 2016, at 04:17, Jacob Keller <jacob.keller@gmail.com> wrote:
> 
> On Fri, Aug 26, 2016 at 8:12 AM, Hedges  Alexander
> <ahedges@student.ethz.ch> wrote:
>>> On 25 Aug 2016, at 19:45, Stefan Beller <sbeller@google.com> wrote:
>>> [1] https://github.com/jlehmann/git-submod-enhancements
>>> which has some attempts for checkout including the submodules.
>>> I also tried writing some patches which integrate checking out submodules
>>> via checkout as well. A quicker `solution` would be a config option that
>>> just runs `git submodule update` after each checkout/pull etc.
>>> 
>> 
>> I see. The quick fix is almost what I’m looking for, except that it leaves
>> the repo in a detached head state. Could the submodule update be made
>> automatically and intelligently pick the branch?
>> 
> 
> You probably want "git submodule update --rebase" or "git submodule
> update --merge" See git help submodule under the update section, or
> even a custom command variant where you can write your own bit of
> shell that does what your project expects.
> 
> Thanks,
> Jake
Previous: Jacob Keller
Message 3 of 3 in “Re: Feature Request: Branch-Aware Submodules”
  1. Hedges AlexanderAug 26, 2016
  2. Jacob KellerAug 29, 2016
  3. Hedges AlexanderSep 1, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.