diff options
author | Shawn O. Pearce <spearce@spearce.org> | 2010-04-12 16:25:29 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-13 13:04:50 -0700 |
commit | 03e8b541b38d95d1cd7b287963c82617a0469f80 (patch) | |
tree | 715169882f024461276fd9facb849eac0c6a7860 /builtin-symbolic-ref.c | |
parent | tag.c: Parse tagger date (if present) (diff) | |
download | tgif-03e8b541b38d95d1cd7b287963c82617a0469f80.tar.xz |
describe: Break annotated tag ties by tagger date
If more than one annotated tag points at the same commit, use the
tag whose tagger field has a more recent date stamp. This resolves
non-deterministic cases where the maintainer has done:
$ git tag -a -m "2.1-rc1" v2.1-rc1 deadbeef
$ git tag -a -m "2.1" v2.1 deadbeef
If the tag is an older-style annotated tag with no tagger date, we
assume a date stamp at the UNIX epoch. This will cause us to prefer
an annotated tag that has a valid date.
We could also try to consider the tag object chain, favoring a tag
that "includes" another one:
$ git tag -a -m "2.1-rc0" v2.1-rc1 deadbeef
$ git tag -a -m "2.1" v2.1 v2.1-rc1
However traversing the tag's object chain looking for inclusion
is much more complicated. Its already very likely that even in
these cases the v2.1 tag will have a more recent tagger date than
v2.1-rc1, so with this change describe should still resolve this
by selecting the more recent v2.1.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin-symbolic-ref.c')
0 files changed, 0 insertions, 0 deletions