2011-06-20 4 views
0

nous avons un dépôt principal SVN dans notre société. J'utilise git-svn sur mon ordinateur portable pour pouvoir utiliser un repo, quand je ne suis pas connecté au réseau de l'entreprise. Maintenant, j'étais 3 semaines en voyage d'affaires et j'ai beaucoup travaillé sur mon dépôt local Git. Il y avait aussi de nombreux engagements au dépôt SVN. Lorsque j'essaie "SVN Rebase", je dois éditer les conflits dans chacun de mes changesets Git. Ce que je voudrais faire, c'est juste commettre tous mes changements locaux à la fois et éditer les conflits une seule fois. Je suis assez nouveau à Git, donc je ne sais pas comment cela est fait correctement et si c'est le meilleur moyen. J'utilise TortoiseGit sur Windows, donc jusqu'à présent je ne me souciais pas vraiment de la ligne de commande.Commit git-svn changements à SVN repo

Merci pour votre aide.

Répondre

0

Une fois que vous avez passé la résolution de conflit au git-svn rebase, vous êtes dans une nouvelle arborescence avec de nouveaux validations qui incluent vos résolutions. Un futur git-svn rebase ne rencontrera pas les mêmes problèmes (contrairement aux fusions répétées, ce qui est rerere est très pratique). Si par "valider tous mes changements locaux à la fois" vous voulez replier tous vos commits dans un seul commit en git (et plus tard SVN) alors vous pouvez utiliser git rebase -i pour "écraser" tous vos commits en un seul commit. Vous ne devez pas inclure les révisions qui ont déjà été envoyées à SVN avec dcommit dans cette rebase -i car vous réécrivez l'historique. Vous aurez toujours à résoudre les conflits lorsque vous git-svn rebase comme vous le feriez si vous utilisiez uniquement SVN et avez fait svn update.

+0

Mon problème est, quand j'essaie de "rebaser SVN" j'ai 15 commits git. Si j'essaie de les écraser dans un commit SVN, je dois encore éditer les conflits dans chaque commit git. Je m'attendais, quand je squash seulement mon dernier commit git serait comparé au repo SVN. – Simon

+0

@Simon quand vous dites "les écraser dans un commit SVN" voulez-vous dire dans un * git * commit avant de faire 'git-svn rebase'? Si c'est le cas, vous pouvez avoir beaucoup de conflits mais ce sera une révision. –

+0

Toutes les modifications sont déjà validées dans le repo local git. J'ai supposé, quand j'utilise "SVN Rebase" avec du squash (au moins TortoiseGit me montre une case à cocher :-), je ferais seulement un commit au repo SVN. – Simon