Skip to content

Commit

Permalink
git-submodule: Instead of using only annotated tags, use any tags.
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Emil Medve authored and Junio C Hamano committed Jul 2, 2007
1 parent ecda072 commit bffe71f
Showing 1 changed file with 17 additions and 4 deletions.
21 changes: 17 additions & 4 deletions git-submodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}
Expand Down

0 comments on commit bffe71f

Please sign in to comment.