mirror of
https://github.com/git/git.git
synced 2024-09-27 01:43:53 +02:00
Merge branch 'so/separate-field-for-m-and-diff-merges'
Internal API clean-up to handle two options "diff-index" and "log" have, which happen to share the same short form, more sensibly. * so/separate-field-for-m-and-diff-merges: revision: add separate field for "-m" of "diff-index -m"
This commit is contained in:
commit
c1ce30d364
10
diff-lib.c
10
diff-lib.c
@ -405,14 +405,8 @@ static void do_oneway_diff(struct unpack_trees_options *o,
|
|||||||
/* if the entry is not checked out, don't examine work tree */
|
/* if the entry is not checked out, don't examine work tree */
|
||||||
cached = o->index_only ||
|
cached = o->index_only ||
|
||||||
(idx && ((idx->ce_flags & CE_VALID) || ce_skip_worktree(idx)));
|
(idx && ((idx->ce_flags & CE_VALID) || ce_skip_worktree(idx)));
|
||||||
/*
|
|
||||||
* Backward compatibility wart - "diff-index -m" does
|
match_missing = revs->match_missing;
|
||||||
* not mean "do not ignore merges", but "match_missing".
|
|
||||||
*
|
|
||||||
* But with the revision flag parsing, that's found in
|
|
||||||
* "!revs->ignore_merges".
|
|
||||||
*/
|
|
||||||
match_missing = !revs->ignore_merges;
|
|
||||||
|
|
||||||
if (cached && idx && ce_stage(idx)) {
|
if (cached && idx && ce_stage(idx)) {
|
||||||
struct diff_filepair *pair;
|
struct diff_filepair *pair;
|
||||||
|
@ -2352,7 +2352,13 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
|
|||||||
revs->diffopt.flags.recursive = 1;
|
revs->diffopt.flags.recursive = 1;
|
||||||
revs->diffopt.flags.tree_in_recursive = 1;
|
revs->diffopt.flags.tree_in_recursive = 1;
|
||||||
} else if (!strcmp(arg, "-m")) {
|
} else if (!strcmp(arg, "-m")) {
|
||||||
|
/*
|
||||||
|
* To "diff-index", "-m" means "match missing", and to the "log"
|
||||||
|
* family of commands, it means "show full diff for merges". Set
|
||||||
|
* both fields appropriately.
|
||||||
|
*/
|
||||||
revs->ignore_merges = 0;
|
revs->ignore_merges = 0;
|
||||||
|
revs->match_missing = 1;
|
||||||
} else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) {
|
} else if ((argcount = parse_long_opt("diff-merges", argv, &optarg))) {
|
||||||
if (!strcmp(optarg, "off")) {
|
if (!strcmp(optarg, "off")) {
|
||||||
revs->ignore_merges = 1;
|
revs->ignore_merges = 1;
|
||||||
|
@ -188,6 +188,7 @@ struct rev_info {
|
|||||||
unsigned int diff:1,
|
unsigned int diff:1,
|
||||||
full_diff:1,
|
full_diff:1,
|
||||||
show_root_diff:1,
|
show_root_diff:1,
|
||||||
|
match_missing:1,
|
||||||
no_commit_id:1,
|
no_commit_id:1,
|
||||||
verbose_header:1,
|
verbose_header:1,
|
||||||
combine_merges:1,
|
combine_merges:1,
|
||||||
|
Loading…
Reference in New Issue
Block a user