Make sure "git show" always show the header, regardless of whether there
is a diff or not.

Also, make sure "always_show_header" actually works, since generate_header
only tested it in one out of three return paths.

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Linus Torvalds 2006-04-16 15:17:23 -07:00 коммит произвёл Junio C Hamano
Родитель cb8f64b4e3
Коммит 78fff6ebba
2 изменённых файлов: 16 добавлений и 5 удалений

1
git.c
Просмотреть файл

@ -373,6 +373,7 @@ static int cmd_show(int argc, const char **argv, char **envp)
rev.diffopt.recursive = 1; rev.diffopt.recursive = 1;
rev.combine_merges = 1; rev.combine_merges = 1;
rev.dense_combined_merges = 1; rev.dense_combined_merges = 1;
rev.always_show_header = 1;
rev.ignore_merges = 0; rev.ignore_merges = 0;
rev.no_walk = 1; rev.no_walk = 1;
return cmd_log_wc(argc, argv, envp, &rev); return cmd_log_wc(argc, argv, envp, &rev);

Просмотреть файл

@ -43,7 +43,7 @@ static int diff_root_tree(struct rev_info *opt,
return retval; return retval;
} }
static const char *generate_header(struct rev_info *opt, static const char *get_header(struct rev_info *opt,
const unsigned char *commit_sha1, const unsigned char *commit_sha1,
const unsigned char *parent_sha1, const unsigned char *parent_sha1,
const struct commit *commit) const struct commit *commit)
@ -75,13 +75,23 @@ static const char *generate_header(struct rev_info *opt,
offset += pretty_print_commit(opt->commit_format, commit, len, offset += pretty_print_commit(opt->commit_format, commit, len,
this_header + offset, this_header + offset,
sizeof(this_header) - offset, abbrev); sizeof(this_header) - offset, abbrev);
if (opt->always_show_header) {
puts(this_header);
return NULL;
}
return this_header; return this_header;
} }
static const char *generate_header(struct rev_info *opt,
const unsigned char *commit_sha1,
const unsigned char *parent_sha1,
const struct commit *commit)
{
const char *header = get_header(opt, commit_sha1, parent_sha1, commit);
if (opt->always_show_header) {
puts(header);
header = NULL;
}
return header;
}
static int do_diff_combined(struct rev_info *opt, struct commit *commit) static int do_diff_combined(struct rev_info *opt, struct commit *commit)
{ {
unsigned const char *sha1 = commit->object.sha1; unsigned const char *sha1 = commit->object.sha1;