Il y a un projet open source que je veux vérifier et contribuer à. Le référentiel principal est SVN mais je veux travailler dans Git. Est-ce possible? P>
La plupart de mes recherches augmentent les guides où vous passez de SVN à Git (ou l'inverse autour) et ne regarde pas en arrière. p>
suppose que les auteurs originaux n'ont aucun intérêt dans l'apprentissage autre que SVN. p>
[MISE À JOUR] STROND> Je n'ai pas, je ne veux pas non plus avoir, commettre l'accès au référentiel SVN. Je cherche des solutions de contournement pour cela. P>
[update2] strong> Si les correctifs sont bien ma seule option, y a-t-il des mises en garde supplémentaires que je devrais être au courant? P>
4 Réponses :
Oui! C'est possible! P>
Vérifiez cet article pour les détails: http://www.romanenco.com/gitsvn < / p>
Il y a trois ou quatre étapes simples pour faire de la symbiose de SVN et SCMS GIT. p>
J'ai travaillé avec cette technologie d'environ trois mois et n'a aucun problème. C'est vraiment cool! Lorsque votre repo principal dans le SVN et que vous pouvez faire des commits hors ligne et obtenir un puissant de la fusion GIT. P>
Heureusement, il y a git-svn dans ce but précis. Il vous permet d'utiliser git localement tout en étant en mesure de vérifier à SVN lorsque vous souhaitez le faire. Il est assez simple et il y a beaucoup d'informations si vous recherchez Il y a un tutoriel http://flavio.castelli.name/howto_use_git_with_svn que vous voudrez peut-être à regarder d'abord. p>
Modifier strong> Pour générer diffs compatibles SVN vous pouvez utiliser Modifier strong> Un inconvénient potentiel de git-svn est qu'il ne gère pas svn externals. Vous devrez gérer vous-même les. P>
Bonne chance! P> git-svn code> ici ou via Google. P>
git diff --no-prefix code>. A noter toutefois que ce format n'est pas compatible avec TortoiseSVN. Si la compatibilité est nécessaire, vous devez utiliser une sorte de script shell; voir par exemple ici: http://mojodna.net/2009/ 02/24 / mon travail-git-workflow.html p>
Oui, j'ai regardé certains à Git-Svn. Il a fière allure d'aller chercher les mises à jour des repos originaux (SVN). Mais je suis principalement intéressé par le flux de travail en amont. Comment bien gérer et générer correctement les patchs (si c'est ma seule option)?
J'ai maintenant inclus des informations sur la génération de correctifs SVN dans ma réponse.
Garder un référentiel git en synchronisée avec un référentiel Subversion est vraiment simple:
clone le référentiel de subversion (dans cet exemple simple, je ignore les branches / balises) p> Continuez à jour avec le tronc de subversion: P> $ git diff 1cc92b96 > my_patch.patch
Pourquoi ne devrais-je pas faire commettre la succursale de synchronisation? Seulement parce que c'est plus facile de générer le diff (étant donné que je n'ai que besoin d'un identifiant de validation)?
Si vous ne possédez pas, vous ne souhaitez pas non plus avoir accès au référentiel SVN, puis une combinaison de git-svn code> et stgit pourrait aider.
git-svn code> crée / mises à jour un clone et
stg code> gère une série de correctifs (
stg code> provenant de STGIT CLAST COURS ):
git svn clone ..
stg new invent-some-patch-id
...edit patch description...
...hack hack hack in the tree...
stg refresh
...possibly hack some more...
stg refresh
..
stg mail
Intéressant, merci, je vais vérifier le stgit quand je rentre à la maison. En fait, je pense que le plus gros problème ici est d'essayer de travailler avec des personnes qui ne croient pas aux systèmes de contrôle de la version distribués. Mais ils sont juste pour manipuler manuellement des correctifs de toute façon, donc je me rends de plus en plus que c'est probablement la voie à suivre.