path: root/revision.c
diff options
authorJunio C Hamano <>2010-03-09 07:27:25 (GMT)
committerJunio C Hamano <>2010-03-09 09:11:18 (GMT)
commitb44900599710c700c1bf164d3753eb7f8eb6c18a (patch)
tree7074d319cc73aed1a3ba26afe549fd584d0c1fda /revision.c
parent32962c9bd5149005b163dff230670872eb99286a (diff)
show -c: show patch text
Traditionally, "show" defaulted to "show --cc" (dense combined patch), but asking for combined patch with "show -c" didn't turn the patch output format on; the placement of this logic in setup_revisions() dates back to cd2bdc5 (Common option parsing for "git log --diff" and friends, 2006-04-14). This unfortunately cannot be done as a trivial change of "if dense combined is asked, default to patch format" done in setup_revisions() to "if any combined is asked, default to patch format", as "diff-tree -c" needs to default to raw, while "diff-tree --cc" needs to default to patch, and they share the codepath. These command specific defaults are now handled in the new "tweak" callback that can be customized by individual command implementations. Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'revision.c')
1 files changed, 3 insertions, 4 deletions
diff --git a/revision.c b/revision.c
index 25c1bbb..2ddbb50 100644
--- a/revision.c
+++ b/revision.c
@@ -1463,6 +1463,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
if (revs->def == NULL)
revs->def = opt ? opt->def : NULL;
+ if (opt && opt->tweak)
+ opt->tweak(revs, opt);
if (revs->show_merge)
if (revs->def && !revs-> {
@@ -1496,11 +1498,8 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
if (!revs->full_diff)
diff_tree_setup_paths(revs->prune_data, &revs->diffopt);
- if (revs->combine_merges) {
+ if (revs->combine_merges)
revs->ignore_merges = 0;
- if (revs->dense_combined_merges && !revs->diffopt.output_format)
- revs->diffopt.output_format = DIFF_FORMAT_PATCH;
- }
revs->diffopt.abbrev = revs->abbrev;
if (diff_setup_done(&revs->diffopt) < 0)
die("diff_setup_done failed");