summaryrefslogtreecommitdiff
path: root/git-submodule.sh
diff options
context:
space:
mode:
authorEmil Medve <Emilian.Medve@Freescale.com>2007-06-26 23:40:58 (GMT)
committerJunio C Hamano <gitster@pobox.com>2007-07-02 08:33:44 (GMT)
commitbffe71f4cd44b8050e7561b9f9245febb8b21f0a (patch)
tree7b8e25a5ae721a2ac55c173aa800bad423197c1d /git-submodule.sh
parentecda072380e54084d5160d7b6a9cdb23369da804 (diff)
downloadgit-bffe71f4cd44b8050e7561b9f9245febb8b21f0a.zip
git-bffe71f4cd44b8050e7561b9f9245febb8b21f0a.tar.gz
git-bffe71f4cd44b8050e7561b9f9245febb8b21f0a.tar.bz2
git-submodule: Instead of using only annotated tags, use any tags.
Some repositories might not use/have annotated tags (for example the ones 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. Signed-off-by: Emil Medve <Emilian.Medve@Freescale.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-submodule.sh')
-rwxr-xr-xgit-submodule.sh21
1 files changed, 17 insertions, 4 deletions
diff --git a/git-submodule.sh b/git-submodule.sh
index 67c78f2..c29e2c3 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -199,6 +199,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
@@ -221,17 +233,18 @@ modules_list()
say "-$sha1 $path"
continue;
fi
- revname=$(unset GIT_DIR && cd "$path" && git-describe $sha1)
+ 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 $sha1)
+ set_name_rev "$path" $"sha1"
fi
- say "+$sha1 $path ($revname)"
+ say "+$sha1 $path$revname"
fi
done
}