diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-08-17 17:02:49 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-08-17 17:02:49 -0700 |
commit | eca8c62a50e033ce6a4f4e065bb507ca3d98e75c (patch) | |
tree | f36173d168e17cd1ac0ce95daa3c7351db14260e /revision.c | |
parent | Merge branch 'ma/stop-progress-null-fix' (diff) | |
parent | doc/git-log: clarify handling of merge commit diffs (diff) | |
download | tgif-eca8c62a50e033ce6a4f4e065bb507ca3d98e75c.tar.xz |
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.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/revision.c b/revision.c index dc86ec8732..97ae8f16a8 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"); |