diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-08-28 21:49:01 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-08-28 21:49:01 -0700 |
commit | 04b508f22b34e1b7461ab6414e1612547d87f08e (patch) | |
tree | 972cb02972d61d28c58252810f0ff03bb16a2c53 /builtin-log.c | |
parent | Documentation/git-diff: A..B and A...B cannot take tree-ishes (diff) | |
parent | "format-patch --root rev" is the way to show everything. (diff) | |
download | tgif-04b508f22b34e1b7461ab6414e1612547d87f08e.tar.xz |
Merge branch 'jc/logsemantics'
* jc/logsemantics:
"format-patch --root rev" is the way to show everything.
Porcelain level "log" family should recurse when diffing.
Diffstat (limited to 'builtin-log.c')
-rw-r--r-- | builtin-log.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/builtin-log.c b/builtin-log.c index 13bae3110e..fa81c25920 100644 --- a/builtin-log.c +++ b/builtin-log.c @@ -55,6 +55,7 @@ static void cmd_log_init(int argc, const char **argv, const char *prefix, rev->abbrev = DEFAULT_ABBREV; rev->commit_format = CMIT_FMT_DEFAULT; rev->verbose_header = 1; + rev->diffopt.recursive = 1; rev->show_root_diff = default_show_root; rev->subject_prefix = fmt_patch_subject_prefix; argc = setup_revisions(argc, argv, rev, "HEAD"); @@ -116,7 +117,6 @@ int cmd_whatchanged(int argc, const char **argv, const char *prefix) git_config(git_log_config); init_revisions(&rev, prefix); rev.diff = 1; - rev.diffopt.recursive = 1; rev.simplify_history = 0; cmd_log_init(argc, argv, prefix, &rev); if (!rev.diffopt.output_format) @@ -165,7 +165,6 @@ int cmd_show(int argc, const char **argv, const char *prefix) git_config(git_log_config); init_revisions(&rev, prefix); rev.diff = 1; - rev.diffopt.recursive = 1; rev.combine_merges = 1; rev.dense_combined_merges = 1; rev.always_show_header = 1; @@ -586,12 +585,19 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix) } if (rev.pending.nr == 1) { - if (rev.max_count < 0) { + if (rev.max_count < 0 && !rev.show_root_diff) { + /* + * This is traditional behaviour of "git format-patch + * origin" that prepares what the origin side still + * does not have. + */ rev.pending.objects[0].item->flags |= UNINTERESTING; add_head(&rev); } - /* Otherwise, it is "format-patch -22 HEAD", and - * get_revision() would return only the specified count. + /* + * Otherwise, it is "format-patch -22 HEAD", and/or + * "format-patch --root HEAD". The user wants + * get_revision() to do the usual traversal. */ } |