[[svn]]
 

SVN

A l'aide !!!

  • Commandes
svn help
svn help diff
svn help up

Info sur le checkout local

  • Obtenir le statut des fichiers du checkout local
svn status
  • Obtenir des infos sur le checkout local (y compris sa révision)
svn info
  • Retrouver le chemin du repository
svnpath

Consulter et rapatrier les modifications

  • Recevoir les modifications qui ont été committées dernièrement
svn up
  • Savoir qui a engendré chaque ligne d'un fichier
svn annotate <fichier>
svn blame <fichier>
svn praise <fichier>
  • Voir le log des commits
svn log <fichier>

Gestion des modifications locales

  • Voir la différence entre votre checkout et le repository
svn diff
svn diff <fichier>
  • Configurer le comportement de svn diff
svn diff --diff-cmd /usr/bin/diff -x -ubB # patch unified ou les lignes blanches et caracteres vides sont ignorés
  • Retirer temporairement des modifications locales
svn diff > modifs.patch
patch -p0 -R < modifs.patch
[...faire des trucs sans les modifs, par exemple tester...]
patch -p0 < modifs.patch
  • Annuler les modifications qu'on a faites dans un fichier
svn revert <fichier>
  • Committer
svn ci -m "message"
svn ci -m "message" <fichier>
  • Committer avec un long message à entrer dans un éditeur
svn ci
svn ci <fichier>
  • Modifier un message de commit
svn propedit --revprop svn:log --revision <revision>
  • Résoudre un conflit, après avoir résolu dans le contenu du fichier lui-même
# après un svn update qui affiche des 'C'
svn resolved <fichier>
# le 'C' ne doit plus apparaître devant le fichier résolu dans svn status

Différences entre révisions

  • Voir la différence entre la version locale et une révision antérieure
svn diff -r <oldrevision> <fichier>
  • Voir la différence entre 2 révisions
svn diff -r <oldrevision>:<newrevision>
  • Voir la différence entre 2 branches
svn diff <branche1> <branche2>
  • Revenir à une version antérieure (pour voir le code, pas pour committer en revertant)
svn update -r <revision>
  • Reverter à une version antérieure (pour committer et revenir à une ancienne version)
svn merge -r <lastrevision>:<oldrevision> .
# committer les changements (en précisant les numéros de versions)

Créer des branches ou tags

  • Créer une branche ou un tag en copiant le trunk du repository (committé directement)
svn cp $(svnpath)/trunk $(svnpath)/branches/<branchname>
svn cp $(svnpath)/trunk $(svnpath)/tags/<tagname>
svn cp $(svnpath)/trunk $(svnpath)/path/to/where/you/want
  • Créer une branche ou un tag à partir du répertoire local (sans committer directement)
svn cp . /path/to/where/you/want
# committer
  • Plus d'infos
svn help cp

Merge entre branches

  • Merger des changements d'une branche dans une autre
svn merge <otherbranch> -r <otherbrancholdrevision>:\
  <otherbranchnewrevision> <destbranch>
# committer en notant les numéros de révision dans le message de commit
# pour pouvoir remerger à partir de <otherbranchnewrevision> plus tard
# NOTE: les tags doivent être donnés avec les url complètes du repository
  • Merger les changements entre 2 tags dans une branche
svn merge <oldtag> <newtag> <destbranch>
# NOTE: les tags doivent être donnés avec les url complètes du repository
  • Merger une branche dans le tronc
    • Tout d'abord s'assurer que la branche et le tronc sont à jour, merger le tronc dans la branche.
    • Lancer la commande suivante depuis le répertoire principal du tronc:
 svn merge svn+ssh://.../project/trunk svn+ssh://.../project/branches/BRANCHNAME .
  • Vérifier avec svn status que ça a une bonne tronche, commiter.

Création d'un repository

  • Si tous les modules vont dans /home/runtime/SVN/, on peut créer un nouveau module 'foobar' avec
svnadmin create /home/runtime/SVN/foobar
  • Pour travailler dessus, il faut ensuite le checkouter pour de vrai
svn checkout svn+ssh://dalton/home/runtime/SVN/foobar

Committer dans le train

svn.txt · Last modified: 2015/06/01 13:11 by furmento
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki