Mark Levedahl <mlevedahl@xxxxxxxxx> writes: > Absent user intervention, git-submodule will maintain submodules as > headless checkouts of remote branches: such checkouts cannot be described > with reference to any local branch. So, allow describing the submodule > using remote branches before falling back on just using the commit id. > > Signed-off-by: Mark Levedahl <mlevedahl@xxxxxxxxx> > --- > git-submodule.sh | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/git-submodule.sh b/git-submodule.sh > index 28509ea..af195a7 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -389,7 +389,8 @@ set_name_rev () { > cd "$1" && { > git describe "$2" 2>/dev/null || > git describe --tags "$2" 2>/dev/null || > - git describe --contains --tags --always "$2" > + git describe --contains "$2" 2>/dev/null || > + git describe --all --always "$2" > } > ) ) > test -z "$revname" || revname=" ($revname)" I think the new fallback sequence makes sense, but your explanation made sense for me only after reading it two and half times. - The original sequence ended with "--contains --always" which always succeeded but with an abbrevated object name. You removed --always from it so that you can add a better last-ditch effort that uses remote references. Side note. Removal of --tags from it is not justified in your log message. It is sort of obvious if you think about it, though... - The new one at the end uses --all because the HEAD is likely to be describable with remote references, and without --all remote reference namespace is not searched for a match. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html