Emil Medve <Emilian.Medve@xxxxxxxxxxxxx> writes: > Some repositories might not use/have annotated tags (for > example repositories created with git-cvsimport) and > git-submodule status might fail because git-describe might > fail to find a tag. This change allows the status of a > submodule to be described/displayed relative to lightweight > tags as well. Certainly that is an improvement, as $revname is purely for commenting and not being able to describe it is not an excuse to fail the command. But there may not be any tag at all. How about something like this on top? diff --git a/git-submodule.sh b/git-submodule.sh index 56ea935..7b6195b 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -133,6 +133,18 @@ modules_update() done } +set_name_rev () { + revname=$( ( + unset GIT_DIR && + cd "$1" && { + git-describe "$2" 2>/dev/null || + git-describe --tags "$2" 2>/dev/null || + git-describe --contains --tags "$2" + } + ) ) + test -z "$revname" || revname=" ($revname)" +} + # # List all submodules, prefixed with: # - submodule not initialized @@ -156,16 +168,17 @@ modules_list() continue; fi revname=$(unset GIT_DIR && cd "$path" && git-describe --tags $sha1) + set_name_rev "$path" $"sha1" if git diff-files --quiet -- "$path" then - say " $sha1 $path ($revname)" + say " $sha1 $path$revname" else if test -z "$cached" then sha1=$(unset GIT_DIR && cd "$path" && git-rev-parse --verify HEAD) - revname=$(unset GIT_DIR && cd "$path" && git-describe --tags $sha1) + set_name_rev "$path" $"sha1" fi - say "+$sha1 $path ($revname)" + say "+$sha1 $path$revname" fi done } - 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