好的,我已经尝试了所有可以在stackoverflow上找到的答案,但显然似乎没有人能够解决我的问题。我想将SVN制作的补丁应用到git存储库。显然,最简单的方法是使用'git apply',但这似乎不起作用。
$ 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
这是xxx_parser.patch的内容:
$ head xxx_parser.patch Index: etc/grammar/JspParser.jjt
--- etc/grammar/JspParser.jjt (revision 7704)
+++ etc/grammar/JspParser.jjt (working copy)
现在为什么它抱怨它找不到文件pmd / grammar / JspParser.jjt?
补丁中的路径指向正确的目录。
答案 0 :(得分:46)
我在使用git应用SVN生成的补丁方面遇到了一些问题。我建议直接使用patch
命令应用任何subversion补丁,并使用git验证是否已成功应用所述补丁。
$ patch -p0 < xxx_parser.patch
$ git diff
答案 1 :(得分:6)
patch
作为可执行命令,则@emcconville answer有效。
对于其他人:
转到svn repo
svn diff --git&gt;&gt; gitFormat.patch
从您的(将此文件复制到)git repo
git apply gitFormat.patch