Применить патч svn к хранилищу git
Хорошо, я пробовал все ответы, которые я мог найти в 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?
Путь в патче указывает на правильный каталог.
Ответы
Ответ 1
У меня было несколько проблем с использованием патчей SVN с git. Я бы рекомендовал применять любые патчи subversion непосредственно с помощью команды patch
и использовать git для проверки того, что исправление было успешно применено.
$ patch -p0 < xxx_parser.patch
$ git diff
Ответ 2
Ответ @emcconville работает, если в командной строке patch
в качестве исполняемой команды.
Для других:
-
Перейдите в svn repo
svn diff - git → gitFormat.patch
-
От вашего (скопируйте этот файл в) git repo
git применить gitFormat.patch