Teach git-describe to display distances from tags.
authorShawn O. Pearce <spearce@spearce.org>
Thu, 25 Jan 2007 17:39:54 +0000 (12:39 -0500)
committerJunio C Hamano <junkio@cox.net>
Sun, 28 Jan 2007 10:08:51 +0000 (02:08 -0800)
If you get two different describes at different
times from a non-rewinding branch and they both come up with the same
tag name, you can tell which is the 'newer' one by distance.  This is
rather common in practice, so its incredibly useful.

[jc: still needs documentation and fixups when traversal gives up
 early.]

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-describe.c

index f3ac2d5f89d88790c4336be279ddbfb7ea203d6f..aedbc78dac9639cbb9ff37edc50102cc8550c7a0 100644 (file)
@@ -191,8 +191,9 @@ static void describe(const char *arg, int last_one)
        if (abbrev == 0)
                printf("%s\n", all_matches[0].name->path );
        else
-               printf("%s-g%s\n", all_matches[0].name->path,
-                          find_unique_abbrev(cmit->object.sha1, abbrev));
+               printf("%s-%d-g%s\n", all_matches[0].name->path,
+                      all_matches[0].depth,
+                      find_unique_abbrev(cmit->object.sha1, abbrev));
 
        if (!last_one)
                clear_commit_marks(cmit, -1);