######################################## ## ## ## BIENVENUE SUR LE SVN PLANETO !!! ## ## ## ## PETIT MEMO ## ## ## ## -- AS 11/2010, 01/2011, 03/2011 ## ## ## ######################################## si vous lisez ceci, votre nom doit figurer sur 000-USERS. si ce n'est pas le cas, contacter la LMD team. ## ## OU CHERCHER DE L'AIDE ??? ## -- doc officielle [livre open source] http://svnbook.red-bean.com/ -- resume pratique des commandes http://www.yolinux.com/TUTORIALS/Subversion.html -- page wikipedia pas mal http://fr.wikipedia.org/wiki/Subversion_%28logiciel%29 -- si vous etes perdus avec les commandes, faites svn help ## ## VOUS ETES USER : COMMENT RECUPERER LES SOURCES SUR LE SERVEUR ? ## -- pour faire descendre les sources il faut taper svn co "http://svn.lmd.jussieu.fr/Planeto/trunk" svn checkout "http://svn.lmd.jussieu.fr/Planeto/trunk" svn checkout -r 67 "http://svn.lmd.jussieu.fr/Planeto/trunk" trunk.r67 [recuperer la version 67] [les fichiers relatifs au controle de version sont dans les repertoires caches .svn : ne pas effacer !!!] [la copie cachee, miroir de la derniere version sur le serveur, se trouve dans les repertoires .svn] -- pour faire descendre une partie des sources il faut d'abord taper svn co "http://svn.lmd.jussieu.fr/Planeto/trunk" -N le_nom_de_mon_dossier afin de creer un dossier racine 'le_nom_de_mon_dossier' qui contient les informations de l'arborescence ... ensuite il suffit de faire svn update DOC LMDZ.COMMON LMDZ.VENUS pour ne recuperer qu'une partie des sources ... toute commande 'svn update' et 'svn commit' ne porte alors que sur ces seuls dossiers descendus [voir 000-MODELS pour plus de details sur l'arborescence] -- pour faire descendre les sources sans controle de version [utilise moins d'espace disque] svn export "http://svn.lmd.jussieu.fr/Planeto/trunk" -- vous pouvez ne faire descendre qu'une partie des sources svn co "http://svn.lmd.jussieu.fr/Planeto/trunk/mars" [GCM martien] svn co "http://svn.lmd.jussieu.fr/Planeto/trunk/mesoscale" [Mesoscale martien] -- pour voir les changements effectues faire svn log svn log | more svn log un_fichier_ou_un_dossier [n'affiche que les log concernant la cible] svn log -v [liste les routines modifiees par chaque revision] -- pour mettre a jour avec la derniere version sur le serveur svn update [NB: svn update est une commande qui met a jour la copie cachee avec la derniere revision] svn update * [si l'on n'a qu'une partie du trunk] -- pour afficher les infos du serveur, faites svn info -- pour voir un fichier avec une historique des changements et des personnes "coupables" de ces changements svn blame **fichier** -- pour ramener un fichier modifie localement a sa version sur le serveur svn revert **fichier** [pratique quand on a teste des modifications que l'on veut annuler pour revenir a la version de reference] -- ASTUCE : si on a un conflit, svn nous indique Select: (p) postpone, (df) diff-full, (e) edit, (mc) mine-conflict, (tc) theirs-conflict, --> si on pense que sa version est la meilleure, repondre 'mc' --> si on pense que la version du serveur est la meilleure, repondre 'tc' --> sinon choisir 'p' et resoudre la conflit a la main. ne pas oublier de taper a la fin 'svn resolved le_fichier_en_question' ## ## VOUS ETES en plus CONTRIBUTOR : COMMENT MODIFIER LES SOURCES SUR LE SERVEUR ? ## -- pour propager les changements locaux au repertoire commun sur le serveur ... meme pour un changement mineur il faut commenter svn ci -m "bla bla bla bla" svn commit -m "bla bla bla bla" svn commit -F un_fichier_plein_de_remarques.txt svn commit -m "commit seulement sur un fichier bla bla bla" **fichier** -- le mot de passe est demande au premier commit [il faut avoir modifie qqch sinon ca ne marche pas] -- au moment ou l'on commence a travailler dans le dossier, toujours faire svn update SINON RISQUE DE TRAVAILLER SUR UNE VERSION ANCIENNE... voire RISQUE DE CONFLIT SVN -- refaire un svn update avant de faire un commit pour les memes raisons [normalement on ne perd pas ses changements] -- pour verifier les changements effectues avant un commit, faire svn diff svn diff **fichier** qui permet de comparer les nouvelles versions locales avec la derniere revision officielle (non modifiee donc si vous n'avez pas fait commit) -- pour verifier les fichiers modifies, ajoutes, etc... avant un commit faire svn status svn status -qu [pour enlever les cas "?"] ATTENTION: svn status montre vos changements comparés à la version locale de départ, contrairement à svn diff qui compare vos changements à la dernière version officielle du serveur -- pour ajouter un fichier (ou repertoire) a synchroniser avec le serveur, utiliser svn add **fichier** NB: tant que le fichier n'est pas ajoute a la base des fichiers synchronises avec cette commande, svn ne le voit pas. pratique pour les fichiers locaux temporaires ! -- similairement svn delete **fichier** svn mv **fichier** **ailleurs** svn mkdir **directory** -- une fois le commit effectue, la copie locale peut etre entierement effacee (eventuellement); il suffit de faire redescendre les sources au prochain usage avec svn co "http://svn.lmd.jussieu.fr/Planeto/trunk" NB: si on choisit de garder sa copie locale, penser au svn update lorsqu'on revient y travailler apres quelque temps