Svn

De MySoLo Wiki.

Sommaire

Merging a Branch into Trunk

  1. Récupérer la révision de la branche: svn : log --verbose --stop-on-copy svn://server/path/to/branch. La révision indiqué (rXXXX) par cette commande est la révision dans laquelle la branche a été créée en copiant.
  2. Changer le répertoire de travail dans le trunk: cd trunk
  3. Effectuer une mise à jours du trunk local: svn up
  4. Ceci mettra à jour votre copie de trunk et indiquera la révision : rYYYY
  5. Maintenant, executer le merge: svn merge -rXXXX:YYYY svn+ssh://server/path/to/branch
  6. Résoudre les conflits durant le merge.
  7. Commiter les modifications: svn ci -m "MERGE myProject myBranch [XXXX]:[YYYY] into trunk"


Vérifier ses modifications

Indique l'état de la version locale (ou d'un fichier précis de la version locale) par rapport à la dernière opération de 'synchronisation' avec le serveur (fichiers pas encore ajoutés, non commités, ...)

svn status [$fichiers$]


Modifications par rapport à la dernière révision du référentiel (n'affichera pas les possibles conflits)

svn status -u [$fichiers$]


Annuler ses modifications

Supprime toutes les modifications locales (non commitées) apportées au fichier spécifié depuis le dernier update.

svn revert [$fichiers$]


Pour utiliser la commande sur un répertoire de façon récursive

svn revert -R [$répertoire$]


Reverter ses modification commités (ex: annuler la révision 303)

svn merge -c -303 http://svn.example.com/repos/calc/trunk

svn merge -r 303:202 http://svn.example.com/repos/calc/trunk


Reverter ses dernières modifications

svn merge -r PREV:HEAD my_file.txt


Résoudre les conflits

mv monfichieragarder.rXXX monfichieragarder

svn resolved monfichieragarder


Résolution en masse

svn status | grep ^C | awk '{print $2}' | xargs svn resolved


Log

suivre l'évolution dans le temps d'une ressource du référentiel ou de la copie locale

svn log [-r vInitiale:vCible] [$fichiers$]


A quelle révision une branche a-t-elle été créée? La dernière révision apparaissant avec la commande suivante

svn log --verbose --stop-on-copy svn+ssh://svn.example.com/home/svn/module/branches/project


Les changements des derniers 6 mois

svn log -r {2006-12-25}:{2007-6-25} somefile.py


Merger / backporter

Cette syntaxe applique les modifications de la branche $brancheorigine$ effectuées de la révision vInitiale à la révision vCible à la branche branchedest. Si branchedest n'est pas spécifié, l'application sera réalisée sur le répertoire courant.

svn merge -r vInitiale:vCible $brancheorigine$ [$branchedest$]

svn ci


Ex: d'une branche (créée à la révision 17) vers le trunk (on est situé dans la copie locale du trunk)

svn merge -r 17:HEAD svn+ssh://svn.example.com/home/svn/module/branches/project


Ex: du trunk vers une branche(créée à la révision 17) (on est situé dans la copie locale de la branche)

svn merge -r 17:HEAD svn+ssh://svn.example.com/home/svn/module/trunk/project


/!\ Un point important est de noter que la branche reçoit le dernier numéro de version. La prochaine fois que l'on veut backporter les modifs du trunk dans cette branche il faudra utiliser CE numéro de version.


Créer une version taggée ou une branche

svn copy trunk tags/$montag$

svn copy trunk branches/$mabranche$

Récupérée de « http://mysolo.org/w/index.php/Svn »
développement
Google AdSense