document, even if you added 910
new lines to make a new 1000-line document, you did not do a
complete rewrite. diffcore-break breaks such a case in order to
help diffcore-rename to consider such filepairs as a candidate of
rename/copy detection, but if filepairs broken that way were not
matched with other filepairs to create rename/copy, then this
transformation merges them back into the original
"modification".
The "extent of changes" parameter can be tweaked from the
default 80% (that is, unless more than 80% of the original
material is deleted, the broken pairs are merged back into a
single modification) by giving a second number to -B option,
like these:
* -B50/60 (give 50% "break score" to diffcore-break, use 60%
for diffcore-merge-broken).
* -B/60 (the same as above, since diffcore-break defaults to 50%).
Note that earlier implementation left a broken pair as separate
creation and deletion patches. This was an unnecessary hack, and
the latest implementation always merges all the broken pairs
back into modifications, but the resulting patch output is
formatted differently for easier review in case of such
a complete rewrite by showing the entire contents of the old version
prefixed with '-', followed by the entire contents of the new
version prefixed with '+'.
diffcore-pickaxe: For Detecting Addition/Deletion of Specified String
---------------------------------------------------------------------
This transformation limits the set of filepairs to those that change
specified strings between the preimage and the postimage in a certain
way. -S<block-of-text> and -G<regular-expression> options are used to
specify different ways these strings are sought.
"-S<block-of-text>" detects filepairs whose preimage and postimage
have different number of occurrences of the specified block of text.
By definition, it will not detect in-file moves. Also, when a
changeset moves a file wholesale without affecting the interesting
string, diffcore-rename kicks in as usual, and `-S` omits the filepair
(since the number of occurrences of that string didn't change in that
rename-detected filepair). When used with `--pickaxe-regex`, treat
the <block-of-text> as an extended POSIX regular expression to match,
instead of a literal string.
"-G<regular-expression>" (mnemonic: grep) detects filepairs whose
textual diff has an added or a deleted line that matches the given
regular expression. This means that it will detect in-file (or what
rename-detection considers the same file) moves, which is noise. The
implementation