-
1/ Find the revision your branch began at: svn log --verbose --stop-on-copy svn+ssh://server/path/to/branch. The final revision printed by this command is the revision in which branch was created by copying. 2/ Change your current working directory to trunk 3/ Perform an SVN update: svn up 4/ This will update your copy of trunk to the most recent version, and tell you the revision you are at: rYYYY 5/ Now we can perform an SVN merge: svn merge -rXXXX:YYYY svn+ssh://server/path/to/branch 6/ Resolve any conflicts that arose during the merge 7/ Commit: svn ci -m "MERGE myProject myBranch [XXXX]:[YYYY] into trunk"
-
What is svn going to do to my files when I update?
-
svn merge –dry-run -r BASE:HEAD .
-
alias svnupdry=‘svn merge –dry-run -r BASE:HEAD .’
-
-
-
#——– 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$
“merge” related tags
spirit’s tags
-