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
This commit is contained in:
10
revision.c
10
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");
|
||||
|
||||
|
Reference in New Issue
Block a user