X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=show-branch.c;h=5778a594f44bd5fe06cd4b69eb37b3007a551385;hb=edde7a8b5324d88f07fcb8204da313c19b4988fa;hp=c117c536da61af0fe2cb12a1257e4537eaef92e3;hpb=1f8af483df5ea7070c421489eff40ca8e508b778;p=git.git diff --git a/show-branch.c b/show-branch.c index c117c536..5778a594 100644 --- a/show-branch.c +++ b/show-branch.c @@ -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); @@ -196,8 +209,11 @@ static void show_one_commit(struct commit *commit) { char pretty[128], *cp; struct commit_name *name = commit->object.util; - pretty_print_commit(CMIT_FMT_ONELINE, commit->buffer, ~0, - pretty, sizeof(pretty)); + if (commit->object.parsed) + pretty_print_commit(CMIT_FMT_ONELINE, commit->buffer, ~0, + pretty, sizeof(pretty)); + else + strcpy(pretty, "(unavailable)"); if (!strncmp(pretty, "[PATCH] ", 8)) cp = pretty + 8; else @@ -427,7 +443,7 @@ int main(int ac, char **av) return show_independent(rev, num_rev, ref_name, rev_mask); /* Show list; --more=-1 means list-only */ - if (1 < num_rev) { + if (1 < num_rev || extra < 0) { for (i = 0; i < num_rev; i++) { int j; int is_head = rev_is_head(head_path,