Subversion
De Linuxmemo.
Ligne 1 : | Ligne 1 : | ||
[[Catégorie:Logiciel]] | [[Catégorie:Logiciel]] | ||
- | === Commandes memo === | + | === Commandes memo rapide === |
Première copie du site | Première copie du site |
Version du 26 mars 2012 à 09:39
Sommaire |
Commandes memo rapide
Première copie du site
svn co url
Mise a jour de la copie local:
svn update
Savoir ce qui a change:
svn log -r xxx -v fichier ou bien svn log -r xxx:xxxx -v fichier
Avoir le détail des changement diff:
svn diff -r xxx:xxx fichier
Afficher en fichier:
svn cat -r xxx:xxx fichier
Savoir ce qui a change sans toucher a la copie local:
svn log -v -r PREV:COMMITTED ou svn log -v -r xxx:COMMITTED
Avoir de l'aide
Commandes
svn help svn help diff svn help up
Manuel de Subversion
http://svnbook.red-bean.com/nightly/en/svn-book.html
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 svn blame svn praise
Voir le log des commits
svn log
Gestion des modifications locales
Voir la différence entre votre checkout et le repository
svn diff svn diff
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
Committer
svn ci -m "message" svn ci -m "message"
Committer avec un long message à entrer dans un éditeur
svn ci svn ci
Modifier un message de commit
svn propedit --revprop svn:log --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 # 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
Voir la différence entre 2 révisions
svn diff -r :
Voir la différence entre 2 branches
svn diff
Revenir à une version antérieure (pour voir le code, pas pour committer en revertant)
svn update -r
Reverter à une version antérieure (pour committer et revenir à une ancienne version)
svn merge -r : . # 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/ svn cp $(svnpath)/trunk $(svnpath)/tags/ 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 -r :\ # committer en notant les numéros de révision dans le message de commit # pour pouvoir remerger à partir de 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 # 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 .
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