Subject: Re: RFC/Discussion - Submodule UX Improvements

From: Emily Shaffer <[email-masked]>
Date: Tue, 20 Apr 2021 11:49:48 -0700

On Mon, Apr 19, 2021 at 08:56:43AM -0400, Aaron Schrab wrote:
> 
> At 16:36 -0700 16 Apr 2021, Emily Shaffer <[email-masked]> wrote:
> > - git switch / git checkout
> 
> (snip)
> 
> > 4. A new branch with the same name is created on each submodule.
> >  a. If there is a naming conflict, we could prompt the user to resolve it, or
> >     we could just check out the branch by that name and print a warning to the
> >     user with advice on how to solve it (cd submodule && git switch -c
> >     different-branch-name HEAD@{1}). Maybe we could skip the warning/advice if
> >     the tree is identical to the tree we would have used as the start point
> >     (that is, the user switched branches in the submodule, then said "oh crap"
> >     and went back and switched branches in the superproject).
> >  b. Tracking info is set appropriately on each new branch to the upstream of
> >     the branch referenced by the parent of the new superproject commit, OR to
> >     the default branch's upstream.
> > 5. The new branch is checked out on each of the submodules.
> 
> In many cases the branch name for the superproject isn't going to be
> appropriate for submodules.
> 
> This seems likely to create a LOT of junk branches. Do you also have a
> proposal for cleaning those up?

Yeah, I think we have a point internally for "clean up alllll the
submodule branches that are unreferenced/already merged". You're right
that in a workflow where I have a superproject with eight submodules,
because I need them to build, but only do active development on one
submodule out of the eight, I'll have a ton of junk refs in the other
seven submodules. Yuck :)

 - Emily