Mercurial > hg
changeset 25631:2748bf78a5bf
patch: add fuzz config flag (issue4697)
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 18 Jun 2015 15:42:40 -0500 |
parents | c88082baf693 |
children | 015c0d1087a3 |
files | mercurial/help/config.txt mercurial/patch.py tests/test-import.t |
diffstat | 3 files changed, 13 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/help/config.txt Fri Jun 19 11:17:11 2015 -0700 +++ b/mercurial/help/config.txt Thu Jun 18 15:42:40 2015 -0500 @@ -1093,6 +1093,11 @@ of line, patch line endings are preserved. Default: strict. +``fuzz`` + The number of lines of 'fuzz' to allow when applying patches. This + controls how much context the patcher is allowed to ignore when + trying to apply a patch. + Default: 2 ``paths`` ---------
--- a/mercurial/patch.py Fri Jun 19 11:17:11 2015 -0700 +++ b/mercurial/patch.py Thu Jun 18 15:42:40 2015 -0500 @@ -773,7 +773,7 @@ for x, s in enumerate(self.lines): self.hash.setdefault(s, []).append(x) - for fuzzlen in xrange(3): + for fuzzlen in xrange(self.ui.configint("patch", "fuzz", 2) + 1): for toponly in [True, False]: old, oldstart, new, newstart = h.fuzzit(fuzzlen, toponly) oldstart = oldstart + self.offset + self.skew
--- a/tests/test-import.t Fri Jun 19 11:17:11 2015 -0700 +++ b/tests/test-import.t Thu Jun 18 15:42:40 2015 -0500 @@ -492,6 +492,13 @@ $ echo line0 >> a $ hg ci -m brancha created new head + $ hg import --config patch.fuzz=0 -v fuzzy-tip.patch + applying fuzzy-tip.patch + patching file a + Hunk #1 FAILED at 0 + 1 out of 1 hunks FAILED -- saving rejects to file a.rej + abort: patch failed to apply + [255] $ hg import --no-commit -v fuzzy-tip.patch applying fuzzy-tip.patch patching file a