aplicar el parche svn al repositorio git


Ok, he probado todas las respuestas que pude encontrar en stackoverflow, pero aparentemente ninguna parece ser capaz de resolver mi problema. Quiero aplicar un parche hecho por SVN a un repositorio git. Aparentemente la forma más fácil de hacerlo es usando 'git apply', pero eso no parece funcionar.

$ 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

Este es el contenido de xxx_parser.parche:

 $ head xxx_parser.patch Index: etc/grammar/JspParser.jjt
 --- etc/grammar/JspParser.jjt   (revision 7704)
 +++ etc/grammar/JspParser.jjt   (working copy)

Ahora, ¿por qué se queja de que no puede encontrar el archivo pmd/grammar/JspParser?jjt?

La ruta del parche apunta al directorio adecuado.

Author: victor, 2012-07-17

2 answers

He tenido algunos problemas al aplicar parches generados por SVN con git. Recomendaría aplicar cualquier parche de subversion directamente con el comando patch, y usar git para verificar que dicho parche se haya aplicado correctamente.

$ patch -p0 < xxx_parser.patch
$ git diff
 45
Author: emcconville,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-07-25 14:51:03

@emcconville answer funciona si tiene patch como un comando ejecutable en la línea de comandos.

Para otros:

  1. Ir al repositorio svn

    Svn diff git git >> gitFormat.parche

  2. Desde tu (Copia este archivo al) repositorio de git

    Git aplica gitFormat.parche

 5
Author: kai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-27 07:26:03