Reputation: 1676
Ok, I've tried all answers i could find on stackoverflow, but apparently none seem to be able to solve my problem. I want to apply a patch made by SVN to a git repository. Apparently the easiest way to do it is by using 'git apply', but that does not seem to work.
$ git apply --ignore-space-change --ignore-whitespace < xxx_parser.patch
<stdin>:10: trailing whitespace.
FORCE_LA_CHECK = false; stdin:23: trailing whitespace.
<stdin>:79: trailing whitespace
.
.
.
.
error: pmd/grammar/JspParser.jjt: No such file or directory
error: patch failed: pmd/pom.xml:251
error: pmd/pom.xml: patch does not apply
This is the content of xxx_parser.patch:
$ head xxx_parser.patch Index: etc/grammar/JspParser.jjt
--- etc/grammar/JspParser.jjt (revision 7704)
+++ etc/grammar/JspParser.jjt (working copy)
now why does it complain that it cannot find file pmd/grammar/JspParser.jjt?
The path in the patch is pointing to proper directory.
Upvotes: 45
Views: 28119
Reputation: 1574
@emcconville answer works if you have patch
as an executable command in the command line.
For others:
Go to the svn repo
svn diff --git >> gitFormat.patch
From your (Copy this file to the) git repo
git apply gitFormat.patch
Upvotes: 12
Reputation: 24419
I've had a few issues applying SVN generated patches with git. I'd recommend applying any subversion patches directly with patch
command, and use git to verify that said patch was successfully applied.
$ patch -p0 < xxx_parser.patch
$ git diff
Upvotes: 54