¿Por qué el parche está rechazando mi file parche en una copy de trabajo SVN?

Tengo un file de parche como este:

Index: dir/file.xml =================================================================== --- dir/file.xml (revision 178) +++ dir/file.xml (working copy) @@ -7,7 +7,7 @@ <markup> - <markup /> + <markup></markup> <markup> <markup> @@ -20,6 +20,7 @@ <markup> <markup> + <tag> <markup> 

Para aplicarlo a la copy de trabajo de SVN, lo ramifiqué usando:

 $ svn copy -r 178 trunk/component/dir branches/mybranch 

Entonces probé

 $ cd branches/mybranch $ ls -R ./dir: file.xml $ patch -p0 -i ~/patchfile.patch 

pero la salida de SVN es

 (Stripping trailing CRs from patch.) patching file dir/file.xml Hunk #1 FAILED at 7. Hunk #2 FAILED at 20. 2 out of 2 hunks FAILED -- saving rejects to file dir/file.xml.rej 

para cada file?

¿Qué podría hacer que SVN rechace el parche? Estoy en una máquina UNIX, pero el parche y el repository tienen terminaciones de línea de Windows …

¡Gracias por la ayuda!

El consejo de dos2unix no estaba mal pero no resolvió el problema como se sugirió.

Lo que hice para parchar realmente todos los files:

 $ cd branches/mybranch $ sudo apt-get install tofrodos $ fromdos ~/patchfile.patch $ fromdos */* $ patch -p0 -i ~/patchfile.patch $ todos */* 

Así que, básicamente, el patch parece tener un problema al manejar líneas CR/LF bajo Unix. Convertirlo a LF , luego parchearlo y volver a convertirlo después de parchear ayudó.

Créditos a Stefan.

podrías probar la herramienta dos2unix en el file de parche. Eso convertirá las terminaciones de línea.

Editado: Así que establecimos que el patch no es una herramienta SVN. SVN no tiene ninguna influencia directa sobre esto, a less que haya creado el file de parche incorrectamente.

¿Estás seguro de que el patchfile fue creado desde el tronco? Si es así, su copy debe ser idéntica a la que se basa en el parche, por lo que no debería haber ninguna razón para que falle. La única conclusión en la que puedo pensar es que hay algo mal con el file de parche; no coincide con tu file.

Confirme que dir / file.xml en su copy de trabajo realmente contiene

  <markup> <markup /> <markup> <markup> 

comenzando en la línea 7. (Supongo que el código de su pregunta es solo una copy editada, porque debe haber 7 líneas allí, no 4.) Es decir, ¿el contenido del file coincide con el contenido del parche? Preste especial atención al espaciado y los finales de línea. Si lo hace, entonces no debería haber ninguna razón por la cual el parche fallaría ese trozo.