victor
victor

Reputation: 1676

apply svn patch to git repository

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

Answers (2)

Vineeth Chitteti
Vineeth Chitteti

Reputation: 1574

@emcconville answer works if you have patch as an executable command in the command line.

For others:

  1. Go to the svn repo

    svn diff --git >> gitFormat.patch

  2. From your (Copy this file to the) git repo

    git apply gitFormat.patch

Upvotes: 12

emcconville
emcconville

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

Related Questions