summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2018-01-23 21:16:37 (GMT)
committerJunio C Hamano <gitster@pobox.com>2018-01-23 21:16:37 (GMT)
commitc0d75f0e2e2cbf432358bfd00be593fd28e257a3 (patch)
treeddf40ec50af3fb5dae3793950ec366fd3a03e2b5 /revision.c
parentaddd37cd64e109eb0224e522869962519224cc78 (diff)
parent4d8c51aa19be94bddb7cac6b11bccb4d23dfd4f8 (diff)
downloadgit-c0d75f0e2e2cbf432358bfd00be593fd28e257a3.zip
git-c0d75f0e2e2cbf432358bfd00be593fd28e257a3.tar.gz
git-c0d75f0e2e2cbf432358bfd00be593fd28e257a3.tar.bz2
Merge branch 'sb/diff-blobfind-pickaxe'
"diff" family of commands learned "--find-object=<object-id>" option to limit the findings to changes that involve the named object. * sb/diff-blobfind-pickaxe: diff: use HAS_MULTI_BITS instead of counting bits manually diff: properly error out when combining multiple pickaxe options diffcore: add a pickaxe option to find a specific blob diff: introduce DIFF_PICKAXE_KINDS_MASK diff: migrate diff_flags.pickaxe_ignore_case to a pickaxe_opts bit diff.h: make pickaxe_opts an unsigned bit field
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/revision.c b/revision.c
index 1f7454c..a60628f 100644
--- a/revision.c
+++ b/revision.c
@@ -2078,7 +2078,7 @@ static int handle_revision_opt(struct rev_info *revs, int argc, const char **arg
revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_ERE;
} else if (!strcmp(arg, "--regexp-ignore-case") || !strcmp(arg, "-i")) {
revs->grep_filter.ignore_case = 1;
- revs->diffopt.flags.pickaxe_ignore_case = 1;
+ revs->diffopt.pickaxe_opts |= DIFF_PICKAXE_IGNORE_CASE;
} else if (!strcmp(arg, "--fixed-strings") || !strcmp(arg, "-F")) {
revs->grep_filter.pattern_type_option = GREP_PATTERN_TYPE_FIXED;
} else if (!strcmp(arg, "--perl-regexp") || !strcmp(arg, "-P")) {
@@ -2409,11 +2409,14 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, struct s
revs->diff = 1;
/* Pickaxe, diff-filter and rename following need diffs */
- if (revs->diffopt.pickaxe ||
+ if ((revs->diffopt.pickaxe_opts & DIFF_PICKAXE_KINDS_MASK) ||
revs->diffopt.filter ||
revs->diffopt.flags.follow_renames)
revs->diff = 1;
+ if (revs->diffopt.objfind)
+ revs->simplify_history = 0;
+
if (revs->topo_order)
revs->limited = 1;