show-branch: fix commit naming breakage.
authorJunio C Hamano <junkio@cox.net>
Sun, 25 Sep 2005 06:33:02 +0000 (23:33 -0700)
committerJunio C Hamano <junkio@cox.net>
Sun, 25 Sep 2005 06:33:02 +0000 (23:33 -0700)
It was ignoring the generation number of the commit when naming 2nd
and later parents, showing "(linus^n)^2" for any <n> incorrectly as
"linus^2".

Signed-off-by: Junio C Hamano <junkio@cox.net>
show-branch.c

index 8cc0755..5778a59 100644 (file)
@@ -138,7 +138,20 @@ static void name_commits(struct commit_list *list,
                                nth++;
                                if (p->object.util)
                                        continue;
-                               sprintf(newname, "%s^%d", n->head_name, nth);
+                               switch (n->generation) {
+                               case 0:
+                                       sprintf(newname, "%s^%d",
+                                               n->head_name, nth);
+                                       break;
+                               case 1:
+                                       sprintf(newname, "%s^^%d",
+                                               n->head_name, nth);
+                                       break;
+                               default:
+                                       sprintf(newname, "%s~%d^%d",
+                                               n->head_name, n->generation,
+                                               nth);
+                               }
                                name_commit(p, strdup(newname), 0);
                                i++;
                                name_first_parent_chain(p);