2010-09-30 5 views
1

J'utilise git-svn qui fonctionne avec bonheur, se ramifiant pour tout ce qui est, rebasant et se déconnecte sur le tronc, puis les pouvoirs qui seront décidés que nous allons commencer à travailler sur un branche au lieu du tronc. Ma question est la suivante: comment puis-je obtenir des branches générées par le maître qui suivait le tronc pour rebaser/fusionner dans la nouvelle branche locale qui suit maintenant une nouvelle branche?Maintenir les branches locales git lors du changement des branches distantes svn

Pour tenter de l'illustrer, voici était ma configuration avant le commutateur (noms branche/repo changés pour protéger les innocents):

Git  ->  svn 
master  ->  trunk 
|-feature1 
|-feature2 

Maintenant, ceci est ma configuration

Git  ->  svn 
master  ->  trunk 
|-feature1 
|-feature2 
newDev  ->  branches/working 

Le problème est, j'ai du travail dans ces branches de fonctionnalité que je veux entrer dans la branche svn "travaillant". Quelle est la meilleure façon de le faire?

Répondre

1

Il ya quelques mois j'ai impléménéré la commande git svn branch. Vous pouvez l'utiliser pour créer de nouvelles branches dans votre svn remote, puis travailler sur une branche git locale basée sur cela. Commettre de ces branches locales à la droite svn branches fonctionne également.

Si vous avez déjà la bonne branche locale autour et que vous voulez mettre cela dans une branche svn qui n'existe pas encore, vous pouvez aussi utiliser git svn branch. Utilisez-le pour créer une nouvelle branche remove svn basée sur off, tirez-la dans votre dépôt git, puis rebasez votre branche git locale basée sur votre maître en haut de celui-ci. Vous allez vous retrouver avec une branche git locale contenant toutes vos modifications en haut d'un commit avec git-svn-id pointant vers la branche que vous venez de créer. Lorsque vous dcommitting de cela, vos changements se termineront également dans cette branche svn sur l'extrémité distante.

En cas de doute, il y a toujours git svn dcommit -n, qui vous dira où exactement git-svn s'engagerait.

Questions connexes