web-dev-qa-db-fra.com

appliquer le correctif svn au référentiel git

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é.

38
victor

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
51
emcconville

@emcconville answer fonctionne si vous avez patch comme commande exécutable en ligne de commande.

Pour les autres:

  1. Allez le repo svn

    svn diff --git >> gitFormat.patch

  2. De votre (Copiez ce fichier dans le) git repo

    git applique gitFormat.patch

6
Vineeth Chitteti