54 votes

Comment appliquer le diff SVN à Git?

J'ai mes projets dans 2 référentiels. Un sous SVN et un sous Git. Chaque fois que je change quelque chose dans SVN, je veux faire la même chose dans le référentiel Git.

Supposons que je modifie le référentiel SVN en produisant la révision 125. Comment appliquer ces mêmes modifications à mon référentiel Git (en supposant que mon référentiel Git soit à jour avec la révision 124).

Je vous remercie.

55voto

drozzy Points 7887

Merci MattJ! Ce que j'ai réellement fait / recherché était:

 cd /path/to/svn/repo
svn diff -r 125 > /tmp/patch.diff
cd /path/to/git/repo
patch -p0 < /tmp/patch.diff
 

Mais j'ai voté ta réponse!

19voto

MattJ Points 5958

Essayer:

 svn diff | patch -d /path/to/git/repo -p0
 

Voir svn help diff si vous souhaitez exporter les diff d'une révision spécifique.

5voto

sehe Points 123151

Pourquoi personne n'aime git-svn? Je ne peux pas supposer que personne ne le sait.

Il y a git-svn (et git-hg et git-cvs et git-bzr afaict). Au moins avec git-svn vous pouvez simplement faire

 git svn clone --stdlayout http://myrepo/root here
 

L'utilisation de -s ( --stdlayout ) suppose l'utilisation du tronc / des branches / des balises / de la présentation standard, mais vous pouvez l'utiliser de n'importe quelle manière ( man git-svn ).

Le mappage est bidirectionnel, vous pouvez donc pousser et tirer comme avec une télécommande native (git). Aucune question posée.

2voto

Federico Builes Points 1940

Outre l’utilisation du correctif mentionné ci-dessus, vous pouvez également définir un point d’ accès post-commit afin de ne pas avoir à le faire chaque fois que vous commettez quelque chose de nouveau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X