Git-SVN

Un article de Wiki.

(Différences entre les versions)
Jump to: navigation, search
Version du 31 décembre 2006 à 15:21
Guyou (Discuter | contribs)
(Connexion d'un dépot GIT à un dépot SVN)
← Différence précédente
Version actuelle
Guyou (Discuter | contribs)
(Mise à jour locale)
Ligne 14: Ligne 14:
Des modifications on été archivées par d'autres développeurs sur le dépot SVN. Il faut les récupérer en local. Des modifications on été archivées par d'autres développeurs sur le dépot SVN. Il faut les récupérer en local.
$ git-svn fetch # pour mettre à jour le mirroir local $ git-svn fetch # pour mettre à jour le mirroir local
- $ cg-pull git-svn # pour récupérer les modifications sur la branche GIT courante+ $ cg-merge git-svn # pour récupérer les modifications sur la branche GIT courante
= Connexion à une branche SVN = = Connexion à une branche SVN =

Version actuelle

Utilisation de GIT en frontal de SVN.

Sommaire

Connexion d'un dépot GIT à un dépot SVN

$ git init-db
$ git-svn init <url>
$ git-svn fetch
$ git checkout -b local remotes/git-svn

Mise à jour distante

On a fait des modifications en local (dans le dépot GIT) et on veut les pousser vers le dépot SVN.

$ git-svn dcommit

Mise à jour locale

Des modifications on été archivées par d'autres développeurs sur le dépot SVN. Il faut les récupérer en local.

$ git-svn fetch    # pour mettre à jour le mirroir local
$ cg-merge git-svn  # pour récupérer les modifications sur la branche GIT courante

Connexion à une branche SVN

Supposons que l'on souhaite, en plus d'être connecté au "trunk", se connecter à une branche du dépot SVN. Supposons que cette branche se nomme "mabranche" et ait pour URL : <url>/branches/mabranche. Comme il s'agit de la deuxième branche SVN, il faut absolument indiquer un identificateur. Pour l'exemple, on choisit de préfixer le nom de la branche SVn par "svn-" soit svn-mabranche.

$ git-svn -i svn-mabranche init <url>/branches/mabranche
$ git-svn -i svn-mabranche fetch

Dans l'hypothèse où un travail avait été amorcé en prévision de cette branche, mais sur une branche du dépot GIT, le plus pratique serait de "déplacer" la branche GIT pour la baser sur la branche connectée à la branche SVN.

$ git rebase --onto svn-mabranche master mabrance-sur-GIT