git/t/t4013
Michał Kępień 296d4a94e7 diff: add -I<regex> that ignores matching changes
Add a new diff option that enables ignoring changes whose all lines
(changed, removed, and added) match a given regular expression.  This is
similar to the -I/--ignore-matching-lines option in standalone diff
utilities and can be used e.g. to ignore changes which only affect code
comments or to look for unrelated changes in commits containing a large
number of automatically applied modifications (e.g. a tree-wide string
replacement).  The difference between -G/-S and the new -I option is
that the latter filters output on a per-change basis.

Use the 'ignore' field of xdchange_t for marking a change as ignored or
not.  Since the same field is used by --ignore-blank-lines, identical
hunk emitting rules apply for --ignore-blank-lines and -I.  These two
options can also be used together in the same git invocation (they are
complementary to each other).

Rename xdl_mark_ignorable() to xdl_mark_ignorable_lines(), to indicate
that it is logically a "sibling" of xdl_mark_ignorable_regex() rather
than its "parent".

Signed-off-by: Michał Kępień <michal@isc.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-10-20 12:53:26 -07:00
..
diff.config_format.subjectprefix_DIFFERENT_PREFIX
diff.diff-tree_--cc_--patch-with-stat_--summary_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--patch-with-stat_--summary_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--patch-with-stat_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--shortstat_master combine-diff: treat --shortstat like --stat 2019-01-24 12:18:53 -08:00
diff.diff-tree_--cc_--stat_--summary_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--stat_--summary_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--stat_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--cc_--summary_REVERSE combine-diff: treat --summary like --stat 2019-01-24 12:18:53 -08:00
diff.diff-tree_--cc_master
diff.diff-tree_--format=%N_note diff-tree.c: load notes machinery when required 2020-04-20 18:22:54 -07:00
diff.diff-tree_--patch-with-raw_initial
diff.diff-tree_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--patch-with-stat_initial
diff.diff-tree_--pretty=oneline_--root_--patch-with-raw_initial
diff.diff-tree_--pretty=oneline_--root_--patch-with-stat_initial diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--pretty=oneline_--root_-p_initial
diff.diff-tree_--pretty=oneline_--root_initial
diff.diff-tree_--pretty=oneline_-p_initial
diff.diff-tree_--pretty=oneline_initial
diff.diff-tree_--pretty_--notes_note diff-tree.c: load notes machinery when required 2020-04-20 18:22:54 -07:00
diff.diff-tree_--pretty_--patch-with-raw_initial
diff.diff-tree_--pretty_--patch-with-stat_initial
diff.diff-tree_--pretty_--patch-with-stat_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--pretty_--root_--patch-with-raw_initial
diff.diff-tree_--pretty_--root_--patch-with-stat_initial diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--pretty_--root_--stat_--compact-summary_initial diff: add --compact-summary 2018-02-27 15:22:47 -08:00
diff.diff-tree_--pretty_--root_--stat_--summary_initial diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--pretty_--root_--stat_initial diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--pretty_--root_--summary_-r_initial
diff.diff-tree_--pretty_--root_--summary_initial
diff.diff-tree_--pretty_--root_-p_initial
diff.diff-tree_--pretty_--root_initial
diff.diff-tree_--pretty_--stat_--summary_initial
diff.diff-tree_--pretty_--stat_initial
diff.diff-tree_--pretty_--summary_initial
diff.diff-tree_--pretty_-p_initial
diff.diff-tree_--pretty_-p_side
diff.diff-tree_--pretty_-R_--root_--stat_--compact-summary_initial diff: add --compact-summary 2018-02-27 15:22:47 -08:00
diff.diff-tree_--pretty_initial
diff.diff-tree_--pretty_note diff-tree.c: load notes machinery when required 2020-04-20 18:22:54 -07:00
diff.diff-tree_--pretty_side
diff.diff-tree_--root_--abbrev_initial
diff.diff-tree_--root_--patch-with-raw_initial
diff.diff-tree_--root_--patch-with-stat_initial diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_--root_-p_initial
diff.diff-tree_--root_-r_--abbrev=4_initial
diff.diff-tree_--root_-r_--abbrev_initial
diff.diff-tree_--root_-r_initial
diff.diff-tree_--root_initial
diff.diff-tree_--stat_--compact-summary_initial_mode diff: add --compact-summary 2018-02-27 15:22:47 -08:00
diff.diff-tree_--stat_initial_mode diff: correct newline in summary for renamed files 2017-09-28 13:15:59 +09:00
diff.diff-tree_--summary_initial_mode diff: correct newline in summary for renamed files 2017-09-28 13:15:59 +09:00
diff.diff-tree_-c_--abbrev_master
diff.diff-tree_-c_--stat_--summary_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_-c_--stat_--summary_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_-c_--stat_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff-tree_-c_master
diff.diff-tree_-p_-m_master
diff.diff-tree_-p_initial
diff.diff-tree_-p_master
diff.diff-tree_-r_--abbrev=4_initial
diff.diff-tree_-r_--abbrev_initial
diff.diff-tree_-R_--stat_--compact-summary_initial_mode diff: add --compact-summary 2018-02-27 15:22:47 -08:00
diff.diff-tree_-r_initial
diff.diff-tree_initial
diff.diff-tree_initial_mode diff: correct newline in summary for renamed files 2017-09-28 13:15:59 +09:00
diff.diff-tree_master
diff.diff_--abbrev_initial..side
diff.diff_--cached diff: support --cached on unborn branches 2011-02-07 15:04:30 -08:00
diff.diff_--cached_--_file0 diff: support --cached on unborn branches 2011-02-07 15:04:30 -08:00
diff.diff_--dirstat-by-file_initial_rearrange --dirstat-by-file: Make it faster and more correct 2011-04-11 10:12:24 -07:00
diff.diff_--dirstat_--cc_master~1_master combine-diff: treat --dirstat like --stat 2019-01-24 12:18:53 -08:00
diff.diff_--dirstat_initial_rearrange Teach --dirstat not to completely ignore rearranged lines within a file 2011-04-11 11:16:15 -07:00
diff.diff_--dirstat_master~1_master~2
diff.diff_--line-prefix=abc_master_master^_side graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
diff.diff_--line-prefix_--cached_--_file0 graph: add support for --line-prefix on all graph-aware output 2016-08-31 18:07:09 -07:00
diff.diff_--name-status_dir2_dir
diff.diff_--no-index_--name-status_--_dir2_dir
diff.diff_--no-index_--name-status_dir2_dir
diff.diff_--no-index_--raw_--abbrev=4_dir2_dir diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--no-index_--raw_--no-abbrev_dir2_dir diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--no-index_--raw_dir2_dir diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--no-index_dir_dir3
diff.diff_--patch-with-raw_-r_initial..side
diff.diff_--patch-with-raw_initial..side
diff.diff_--patch-with-stat_-r_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff_--patch-with-stat_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff_--raw_--abbrev=4_initial diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--raw_--no-abbrev_initial diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--raw_initial diff: handle --no-abbrev in no-index case 2016-12-08 14:40:30 -08:00
diff.diff_--stat_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff_-r_--stat_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.diff_-r_initial..side
diff.diff_-U1_initial..side diff-parseopt: restore -U (no argument) behavior 2019-05-29 11:04:32 -07:00
diff.diff_-U2_initial..side diff-parseopt: restore -U (no argument) behavior 2019-05-29 11:04:32 -07:00
diff.diff_-U_initial..side diff-parseopt: restore -U (no argument) behavior 2019-05-29 11:04:32 -07:00
diff.diff_initial..side
diff.diff_master_master^_side
diff.format-patch_--attach_--stdout_--suffix=.diff_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--attach_--stdout_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--attach_--stdout_initial..master^ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--attach_--stdout_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_--numbered-files_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_--subject-prefix=TESTCASE_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_initial..master^ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_initial..master^^ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--inline_--stdout_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_--cover-letter_-n_initial..master^ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_--no-numbered_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_--numbered_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_initial..master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_initial..master^ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.format-patch_--stdout_initial..side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.log_--decorate=full_--all fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--decorate_--all fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--patch-with-stat_--summary_master_--_dir_ fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--patch-with-stat_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--patch-with-stat_master_--_dir_ fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_--cc_--patch-with-stat_--summary_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_--patch-with-stat_--summary_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_--patch-with-stat_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_-c_--patch-with-stat_--summary_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_-p_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_--root_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_-GF_-p_--pickaxe-all_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-GF_-p_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-GF_master diff/log -G<pattern>: tests 2010-08-31 14:30:29 -07:00
diff.log_-IA_-IB_-I1_-I2_-p_master diff: add -I<regex> that ignores matching changes 2020-10-20 12:53:26 -07:00
diff.log_-m_-p_--first-parent_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_-m_-p_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_-p_--first-parent_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_-p_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.log_-S_F_master diff: parse separate options like -S foo 2010-08-06 09:14:22 -07:00
diff.log_-SF_-p_master
diff.log_-SF_master
diff.log_-SF_master_--max-count=0 log: fix --max-count when used together with -S or -G 2011-03-09 14:28:24 -08:00
diff.log_-SF_master_--max-count=1 log: fix --max-count when used together with -S or -G 2011-03-09 14:28:24 -08:00
diff.log_-SF_master_--max-count=2 log: fix --max-count when used together with -S or -G 2011-03-09 14:28:24 -08:00
diff.log_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.noellipses-diff-tree_--root_--abbrev_initial t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff-tree_--root_-r_--abbrev=4_initial t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff-tree_--root_-r_--abbrev_initial t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff-tree_-c_--abbrev_master t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--no-index_--raw_--abbrev=4_dir2_dir t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--no-index_--raw_dir2_dir t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--patch-with-raw_-r_initial..side t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--patch-with-raw_initial..side t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--raw_--abbrev=4_initial t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-diff_--raw_initial t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-show_--patch-with-raw_side t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-whatchanged_--root_master t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-whatchanged_-SF_master t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.noellipses-whatchanged_master t4013: test new output from diff --abbrev --raw 2017-12-06 07:32:59 -08:00
diff.rev-list_--children_HEAD
diff.rev-list_--parents_HEAD
diff.show_--first-parent_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.show_--patch-with-raw_side
diff.show_--patch-with-stat_--summary_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.show_--patch-with-stat_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.show_--root_initial
diff.show_--stat_--summary_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.show_--stat_side diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.show_-c_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.show_-m_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.show_initial
diff.show_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.show_side
diff.whatchanged_--patch-with-stat_--summary_master_--_dir_ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.whatchanged_--patch-with-stat_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.whatchanged_--patch-with-stat_master_--_dir_ diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.whatchanged_--root_--cc_--patch-with-stat_--summary_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.whatchanged_--root_--patch-with-stat_--summary_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.whatchanged_--root_--patch-with-stat_master diff --stat: use less columns for change counts 2012-04-30 14:17:26 -07:00
diff.whatchanged_--root_-c_--patch-with-stat_--summary_master fmt-merge-msg: stop treating master specially 2020-06-23 17:22:35 -07:00
diff.whatchanged_--root_-p_master
diff.whatchanged_--root_master
diff.whatchanged_-p_master
diff.whatchanged_-SF_-p_master
diff.whatchanged_-SF_master
diff.whatchanged_master