log: do not print ellipses with --abbrev-commit

'git log --abbrev-commit' added an ellipsis to all commit names that
were abbreviated.  This was particularly annoying if you wanted to
cut&paste the sha1 from the terminal, since selecting by word would
pick up '...'  too.

So use find_unique_abbrev() instead of diff_unique_abbrev() in all
log-related commit sha1 printing routines, and also change the
formatting of the 'Merge: parent1 parent2' line output via
pretty_print_commit().

Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Thomas Rast
2009-02-13 23:10:41 +01:00
committed by Junio C Hamano
parent 5cd12b85fe
commit 7fcda9201e
16 changed files with 19 additions and 21 deletions

View File

@ -48,7 +48,7 @@ static void show_parents(struct commit *commit, int abbrev)
struct commit_list *p;
for (p = commit->parents; p ; p = p->next) {
struct commit *parent = p->item;
printf(" %s", diff_unique_abbrev(parent->object.sha1, abbrev));
printf(" %s", find_unique_abbrev(parent->object.sha1, abbrev));
}
}
@ -280,7 +280,7 @@ void show_log(struct rev_info *opt)
putchar('>');
}
}
fputs(diff_unique_abbrev(commit->object.sha1, abbrev_commit), stdout);
fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit), stdout);
if (opt->print_parents)
show_parents(commit, abbrev_commit);
show_decorations(opt, commit);
@ -348,13 +348,13 @@ void show_log(struct rev_info *opt)
putchar('>');
}
}
fputs(diff_unique_abbrev(commit->object.sha1, abbrev_commit),
fputs(find_unique_abbrev(commit->object.sha1, abbrev_commit),
stdout);
if (opt->print_parents)
show_parents(commit, abbrev_commit);
if (parent)
printf(" (from %s)",
diff_unique_abbrev(parent->object.sha1,
find_unique_abbrev(parent->object.sha1,
abbrev_commit));
show_decorations(opt, commit);
printf("%s", diff_get_color_opt(&opt->diffopt, DIFF_RESET));