Uwe Kleine-KKKnig <ukleinek@xxxxxxxxx> wrote: > On Mon, Sep 29, 2008 at 08:01:27AM -0700, Shawn O. Pearce wrote: > > --tags:: > > If a lightweight tag exactly matches, output it. If no > > annotated tag is found in the ancestry but a lightweight > > tag is found, output the lightweight tag. > > IMHO --tags should behave as Erez expected (because it's what I > expected, too). As --tags currently behaves it's only usable in very > rare cases (most of the time it only makes a difference on repos without > any annotated tag). > > When do you pass --tags? Only if a lightweight tag is OK for an answer. > And then I would prefer a "near" lightweight tag to a "farer" annotated > one. I don't disagree. I've been tempted to write a patch to change the behavior of git-describe so that --tags and --all control what names are inserted into the candidate list, but don't control the ordering of their selection. I think this is all that is needed to make the behavior do what you and Erez expected. But its a pretty big change in the results if you are passing in --all or --tags today. --8<-- [WIP] Change meaning of --tags and --all --- builtin-describe.c | 6 ++---- 1 files changed, 2 insertions(+), 4 deletions(-) diff --git a/builtin-describe.c b/builtin-describe.c index ec404c8..fd54fec 100644 --- a/builtin-describe.c +++ b/builtin-describe.c @@ -15,8 +15,8 @@ static const char * const describe_usage[] = { }; 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; /* Either lightweight or annotated tags */ static int longformat; static int abbrev = DEFAULT_ABBREV; static int max_candidates = 10; @@ -112,8 +112,6 @@ static int compare_pt(const void *a_, const void *b_) { 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) -- 1.6.0.2.513.g6dbd -- Shawn. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html