summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-08-18 00:02:49 (GMT)
committerJunio C Hamano <gitster@pobox.com>2020-08-18 00:02:49 (GMT)
commiteca8c62a50e033ce6a4f4e065bb507ca3d98e75c (patch)
treef36173d168e17cd1ac0ce95daa3c7351db14260e /revision.c
parente6ec620d8b2d576908889476eb7da716d2e4bda2 (diff)
parent5fbb4bc1910f76b344fcb88df2544701b6030435 (diff)
downloadgit-eca8c62a50e033ce6a4f4e065bb507ca3d98e75c.zip
git-eca8c62a50e033ce6a4f4e065bb507ca3d98e75c.tar.gz
git-eca8c62a50e033ce6a4f4e065bb507ca3d98e75c.tar.bz2
Merge branch 'jk/log-fp-implies-m'
"git log --first-parent -p" showed patches only for single-parent commits on the first-parent chain; the "--first-parent" option has been made to imply "-m". Use "--no-diff-merges" to restore the previous behaviour to omit patches for merge commits. * jk/log-fp-implies-m: doc/git-log: clarify handling of merge commit diffs doc/git-log: move "-t" into diff-options list doc/git-log: drop "-r" diff option doc/git-log: move "Diff Formatting" from rev-list-options log: enable "-m" automatically with "--first-parent" revision: add "--no-diff-merges" option to counteract "-m" log: drop "--cc implies -m" logic
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/revision.c b/revision.c
index dc86ec8..97ae8f1 100644
--- a/revision.c
+++ b/revision.c
@@ -1815,7 +1815,7 @@ void repo_init_revisions(struct repository *r,
revs->repo = r;
revs->abbrev = DEFAULT_ABBREV;
- revs->ignore_merges = 1;
+ revs->ignore_merges = -1;
revs->simplify_history = 1;
revs->pruning.repo = r;
revs->pruning.flags.recursive = 1;
@@ -2343,8 +2343,10 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
revs->diff = 1;
revs->diffopt.flags.recursive = 1;
revs->diffopt.flags.tree_in_recursive = 1;
- } else if (!strcmp(arg, "-m")) {
+ } else if (!strcmp(arg, "-m") || !strcmp(arg, "--diff-merges")) {
revs->ignore_merges = 0;
+ } else if (!strcmp(arg, "--no-diff-merges")) {
+ revs->ignore_merges = 1;
} else if (!strcmp(arg, "-c")) {
revs->diff = 1;
revs->dense_combined_merges = 0;
@@ -2854,8 +2856,10 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
copy_pathspec(&revs->diffopt.pathspec,
&revs->prune_data);
}
- if (revs->combine_merges)
+ if (revs->combine_merges && revs->ignore_merges < 0)
revs->ignore_merges = 0;
+ if (revs->ignore_merges < 0)
+ revs->ignore_merges = 1;
if (revs->combined_all_paths && !revs->combine_merges)
die("--combined-all-paths makes no sense without -c or --cc");