Ok, j'ai essayé toutes les réponses que j'ai pu trouver sur stackoverflow, mais apparemment aucune ne semble pouvoir résoudre mon problème. Je veux appliquer un patch créé par SVN à un référentiel git. Apparemment, la façon la plus simple de le faire est d'utiliser "git apply", mais cela ne semble pas fonctionner.
$ 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
Voici le contenu de xxx_parser.patch:
$ head xxx_parser.patch Index: etc/grammar/JspParser.jjt
--- etc/grammar/JspParser.jjt (revision 7704)
+++ etc/grammar/JspParser.jjt (working copy)
maintenant, pourquoi se plaint-il de ne pas trouver le fichier pmd/grammar/JspParser.jjt?
Le chemin dans le correctif pointe vers le répertoire approprié.
J'ai eu quelques problèmes pour appliquer des correctifs générés par SVN avec git. Je recommanderais d'appliquer tout correctif Subversion directement avec la commande patch
et d'utiliser git pour vérifier que ce correctif a été appliqué avec succès.
$ patch -p0 < xxx_parser.patch
$ git diff
@emcconville answer fonctionne si vous avez patch
comme commande exécutable en ligne de commande.
Pour les autres:
Allez le repo svn
svn diff --git >> gitFormat.patch
De votre (Copiez ce fichier dans le) git repo
git applique gitFormat.patch