summaryrefslogtreecommitdiff
path: root/builtin/log.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2020-07-29 20:10:28 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-07-29 20:43:57 (GMT)
commit9ab89a2439064720cc790c4477b8e981832c43f5 (patch)
treefe7aac85ff5caabe47f64bf6405039d4f8f10435 /builtin/log.c
parent6fae74b418da05a80897487805c833fd0b253df3 (diff)
downloadgit-9ab89a2439064720cc790c4477b8e981832c43f5.zip
git-9ab89a2439064720cc790c4477b8e981832c43f5.tar.gz
git-9ab89a2439064720cc790c4477b8e981832c43f5.tar.bz2
log: enable "-m" automatically with "--first-parent"
When using "--first-parent" to consider history as a single line of commits, git-log still defaults to treating merges specially, even though they could be considered as single commits in the linearized history (that just introduce all of the changes from the second and higher parents). Let's instead have "--first-parent" imply "-m", which makes something like: git log --first-parent -p do what you'd expect. Likewise: git log --first-parent -Sfoo will find "foo" in merge commits. No new test is needed; we'll tweak the output of the existing "--first-parent -p" test, which now matches the "-m --first-parent -p" test. The unchanged existing test for "--no-diff-merges" confirms that the user can get the old behavior if they want. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/log.c')
-rw-r--r--builtin/log.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/builtin/log.c b/builtin/log.c
index 39b3d77..83b147c 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -731,6 +731,9 @@ static void log_setup_revisions_tweak(struct rev_info *rev,
/* Turn --cc/-c into -p --cc/-c when -p was not given */
if (!rev->diffopt.output_format && rev->combine_merges)
rev->diffopt.output_format = DIFF_FORMAT_PATCH;
+
+ if (rev->first_parent_only && rev->ignore_merges < 0)
+ rev->ignore_merges = 0;
}
int cmd_log(int argc, const char **argv, const char *prefix)