# [PATCH (resend)] cvsexportcommit -p : fix the usage of git-apply -C.

2 messages from 2007-04-09 to 2007-04-10. Participants: Tomash Brechko, Junio C Hamano.
Thread: https://gitlist.dev/t/7581

## Tomash Brechko, 2007-04-09 11:24

Subject: [PATCH (resend)] cvsexportcommit -p : fix the usage of git-apply -C.
Message-ID: <20070409112402.GD11593@moonlight.home>
URL: https://gitlist.dev/e/20070409112402.GD11593%40moonlight.home

```
Unlike 'patch --fuzz=NUM', which specifies the number of lines allowed
to mismatch, 'git-apply -CNUM' requests the match of NUM lines of
context.  Omitting -C requests full context match, and that's what
should be used for cvsexportcommit -p.
---
 git-cvsexportcommit.perl |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index 67224b4..6ed4719 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -124,12 +124,17 @@ close MSG;
 `git-diff-tree --binary -p $parent $commit >.cvsexportcommit.diff`;# || die "Cannot diff";
 
 ## apply non-binary changes
-my $fuzz = $opt_p ? 0 : 2;
+
+# In pedantic mode require all lines of context to match.  In normal
+# mode, be compatible with diff/patch: assume 3 lines of context and
+# require at least one line match, i.e. ignore at most 2 lines of
+# context, like diff/patch do by default.
+my $context = $opt_p ? '' : '-C1';
 
 print "Checking if patch will apply\n";
 
 my @stat;
-open APPLY, "GIT_DIR= git-apply -C$fuzz --binary --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch";
+open APPLY, "GIT_DIR= git-apply $context --binary --summary --numstat<.cvsexportcommit.diff|" || die "cannot patch";
 @stat=<APPLY>;
 close APPLY || die "Cannot patch";
 my (@bfiles,@files,@afiles,@dfiles);
@@ -196,7 +201,7 @@ if ($dirty) {
 }
 
 print "Applying\n";
-`GIT_DIR= git-apply -C$fuzz --binary --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch";
+`GIT_DIR= git-apply $context --binary --summary --numstat --apply <.cvsexportcommit.diff` || die "cannot patch";
 
 print "Patch applied successfully. Adding new files and directories to CVS\n";
 my $dirtypatch = 0;
-- 
1.5.1.82.g46af1-dirty

```

## Junio C Hamano, 2007-04-10 01:52

Subject: Re: [PATCH (resend)] cvsexportcommit -p : fix the usage of git-apply -C.
Message-ID: <7v7islxafz.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7v7islxafz.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <20070409112402.GD11593@moonlight.home>

```
Thanks.  Looks very sane.

```
