Svn
De MySoLo Wiki.
Sommaire |
Merging a Branch into Trunk
- 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.
- Changer le répertoire de travail dans le trunk: cd trunk
- Effectuer une mise à jours du trunk local: svn up
- Ceci mettra à jour votre copie de trunk et indiquera la révision : rYYYY
- Maintenant, executer le merge: svn merge -rXXXX:YYYY svn+ssh://server/path/to/branch
- Résoudre les conflits durant le merge.
- 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$
