summaryrefslogtreecommitdiff
path: root/builtin/diff-tree.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2010-03-24 23:25:39 (GMT)
committerJunio C Hamano <gitster@pobox.com>2010-03-24 23:25:39 (GMT)
commit797d44343c831680aeae3392259fcadeb178bf61 (patch)
tree6639bf5dfb12eea0a67bd3b3323e3cabd79bc58e /builtin/diff-tree.c
parent954f7cfdac48b8d9fe91c29ecfa44ac0c639867c (diff)
parent2bf6587349e31b582dae47954b1a334052230e28 (diff)
downloadgit-797d44343c831680aeae3392259fcadeb178bf61.zip
git-797d44343c831680aeae3392259fcadeb178bf61.tar.gz
git-797d44343c831680aeae3392259fcadeb178bf61.tar.bz2
Merge branch 'pb/log-first-parent-p-m'
* pb/log-first-parent-p-m: show --first-parent/-m: do not default to --cc show -c: show patch text revision: introduce setup_revision_opt t4013: add tests for log -p -m --first-parent git log -p -m: document -m and honor --first-parent
Diffstat (limited to 'builtin/diff-tree.c')
-rw-r--r--builtin/diff-tree.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/builtin/diff-tree.c b/builtin/diff-tree.c
index 2380c21..3c78bda 100644
--- a/builtin/diff-tree.c
+++ b/builtin/diff-tree.c
@@ -92,12 +92,23 @@ static const char diff_tree_usage[] =
" --root include the initial commit as diff against /dev/null\n"
COMMON_DIFF_OPTIONS_HELP;
+static void diff_tree_tweak_rev(struct rev_info *rev, struct setup_revision_opt *opt)
+{
+ if (!rev->diffopt.output_format) {
+ if (rev->dense_combined_merges)
+ rev->diffopt.output_format = DIFF_FORMAT_PATCH;
+ else
+ rev->diffopt.output_format = DIFF_FORMAT_RAW;
+ }
+}
+
int cmd_diff_tree(int argc, const char **argv, const char *prefix)
{
int nr_sha1;
char line[1000];
struct object *tree1, *tree2;
static struct rev_info *opt = &log_tree_opt;
+ struct setup_revision_opt s_r_opt;
int read_stdin = 0;
init_revisions(opt, prefix);
@@ -105,7 +116,9 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
opt->abbrev = 0;
opt->diff = 1;
opt->disable_stdin = 1;
- argc = setup_revisions(argc, argv, opt, NULL);
+ memset(&s_r_opt, 0, sizeof(s_r_opt));
+ s_r_opt.tweak = diff_tree_tweak_rev;
+ argc = setup_revisions(argc, argv, opt, &s_r_opt);
while (--argc > 0) {
const char *arg = *++argv;
@@ -117,9 +130,6 @@ int cmd_diff_tree(int argc, const char **argv, const char *prefix)
usage(diff_tree_usage);
}
- if (!opt->diffopt.output_format)
- opt->diffopt.output_format = DIFF_FORMAT_RAW;
-
/*
* NOTE! We expect "a ^b" to be equal to "a..b", so we
* reverse the order of the objects if the second one