From: Junio C Hamano Date: Sat, 27 Dec 2008 22:21:15 +0000 (-0800) Subject: Merge branch 'sp/maint-describe-all-tag-warning' into maint X-Git-Tag: v1.6.1.1~41 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/fcd3549ef239378d1d2ca11df9e8c91f7fa0ab2e?ds=inline;hp=-c Merge branch 'sp/maint-describe-all-tag-warning' into maint * sp/maint-describe-all-tag-warning: describe: Avoid unnecessary warning when using --all --- fcd3549ef239378d1d2ca11df9e8c91f7fa0ab2e diff --combined builtin-describe.c index d2cfb1b083,22b989fd74..3a007ed1ca --- a/builtin-describe.c +++ b/builtin-describe.c @@@ -10,17 -10,17 +10,17 @@@ #define MAX_TAGS (FLAG_BITS - 1) static const char * const describe_usage[] = { - "git-describe [options] *", + "git describe [options] *", NULL }; static int debug; /* Display lots of verbose info */ -static int all; /* Default to annotated tags only */ -static int tags; /* But allow any tags if --tags is specified */ +static int all; /* Any valid ref can be used */ +static int tags; /* Allow lightweight tags */ static int longformat; static int abbrev = DEFAULT_ABBREV; static int max_candidates = 10; -const char *pattern = NULL; +static const char *pattern; static int always; struct commit_name { @@@ -112,6 -112,8 +112,6 @@@ static int compare_pt(const void *a_, c { struct possible_tag *a = (struct possible_tag *)a_; struct possible_tag *b = (struct possible_tag *)b_; - if (a->name->prio != b->name->prio) - return b->name->prio - a->name->prio; if (a->depth != b->depth) return a->depth - b->depth; if (a->found_order != b->found_order) @@@ -158,7 -160,7 +158,7 @@@ static void display_name(struct commit_ n->tag = lookup_tag(n->sha1); if (!n->tag || parse_tag(n->tag) || !n->tag->tag) die("annotated tag %s not available", n->path); - if (strcmp(n->tag->tag, n->path)) + if (strcmp(n->tag->tag, all ? n->path + 5 : n->path)) warning("tag '%s' is really '%s' here", n->tag->tag, n->path); } @@@ -202,7 -204,7 +202,7 @@@ static void describe(const char *arg, i */ display_name(n); if (longformat) - show_suffix(0, n->tag->tagged->sha1); + show_suffix(0, n->tag ? n->tag->tagged->sha1 : sha1); printf("\n"); return; } diff --combined t/t6120-describe.sh index e6c9e59b61,113a085cb9..8c7e081c53 --- a/t/t6120-describe.sh +++ b/t/t6120-describe.sh @@@ -31,57 -31,57 +31,57 @@@ check_describe () test_expect_success setup ' test_tick && - echo one >file && git add file && git-commit -m initial && + echo one >file && git add file && git commit -m initial && one=$(git rev-parse HEAD) && test_tick && - echo two >file && git add file && git-commit -m second && + echo two >file && git add file && git commit -m second && two=$(git rev-parse HEAD) && test_tick && - echo three >file && git add file && git-commit -m third && + echo three >file && git add file && git commit -m third && test_tick && - echo A >file && git add file && git-commit -m A && + echo A >file && git add file && git commit -m A && test_tick && - git-tag -a -m A A && + git tag -a -m A A && test_tick && - echo c >file && git add file && git-commit -m c && + echo c >file && git add file && git commit -m c && test_tick && - git-tag c && + git tag c && git reset --hard $two && test_tick && - echo B >side && git add side && git-commit -m B && + echo B >side && git add side && git commit -m B && test_tick && - git-tag -a -m B B && + git tag -a -m B B && test_tick && - git-merge -m Merged c && + git merge -m Merged c && merged=$(git rev-parse HEAD) && git reset --hard $two && test_tick && - echo D >another && git add another && git-commit -m D && + echo D >another && git add another && git commit -m D && test_tick && - git-tag -a -m D D && + git tag -a -m D D && test_tick && echo DD >another && git commit -a -m another && test_tick && - git-tag e && + git tag e && test_tick && echo DDD >another && git commit -a -m "yet another" && test_tick && - git-merge -m Merged $merged && + git merge -m Merged $merged && test_tick && echo X >file && echo X >side && git add file side && - git-commit -m x + git commit -m x ' @@@ -91,15 -91,21 +91,21 @@@ check_describe D-* HEAD^ check_describe A-* HEAD^^2 check_describe B HEAD^^2^ -check_describe A-* --tags HEAD -check_describe A-* --tags HEAD^ -check_describe D-* --tags HEAD^^ -check_describe A-* --tags HEAD^^2 +check_describe c-* --tags HEAD +check_describe c-* --tags HEAD^ +check_describe e-* --tags HEAD^^ +check_describe c-* --tags HEAD^^2 check_describe B --tags HEAD^^2^ check_describe B-0-* --long HEAD^^2^ check_describe A-3-* --long HEAD^^2 + : >err.expect + check_describe A --all A^0 + test_expect_success 'no warning was displayed for A' ' + test_cmp err.expect err.actual + ' + test_expect_success 'rename tag A to Q locally' ' mv .git/refs/tags/A .git/refs/tags/Q ' @@@ -108,7 -114,7 +114,7 @@@ warning: tag 'A' is really 'Q' her EOF check_describe A-* HEAD test_expect_success 'warning was displayed for Q' ' - git diff err.expect err.actual + test_cmp err.expect err.actual ' test_expect_success 'rename tag Q back to A' ' mv .git/refs/tags/Q .git/refs/tags/A @@@ -139,6 -145,4 +145,6 @@@ check_describe "test1-lightweight-*" -- check_describe "test2-lightweight-*" --tags --match="test2-*" +check_describe "test2-lightweight-*" --long --tags --match="test2-*" HEAD^ + test_done