Подтвердить что ты не робот

Применить патч 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?

Путь в патче указывает на правильный каталог.

4b9b3361

Ответ 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