diff options
author | Mark Levedahl <mlevedahl@gmail.com> | 2008-04-14 22:48:06 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-04-14 23:14:08 -0700 |
commit | f669ac0be901e19a8948c9b04af63d23ebae8003 (patch) | |
tree | a15a0c9837feadbfacfc4e66c3cdf6b0721164c3 | |
parent | 02604e293a3b7d48b0ce4e34149de8dc89c674e5 (diff) | |
download | git-f669ac0be901e19a8948c9b04af63d23ebae8003.tar.gz git-f669ac0be901e19a8948c9b04af63d23ebae8003.tar.xz |
git-submodule - possibly use branch name to describe a module
This changes the search logic for describing a submodule from:
- annotated tag
- any tag
- tag on a subsequent commit
- commit id
to
- annotated tag
- any tag
- tag on a subsequent commit
- local or remote branch
- commit id
The change is describing with respect to a branch before falling
back to the commit id. By itself, git-submodule will maintain submodules
as headless checkouts without ever making a local branch. In
general, such heads can always be described relative to the remote branch
regardless of existence of tags, and so provides a better fallback
summary than just the commit id.
This requires inserting an extra describe step as --contains is
incompatible with --all, but the latter can be used with --always
to fall back to a commit ID. Also, --contains implies --tags, so the
latter is not needed.
Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-x | git-submodule.sh | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/git-submodule.sh b/git-submodule.sh index 7674346c8..a745e42bf 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -327,7 +327,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)" |