wiki:InstSvnInca

PREMIERS PAS SUR SVN AVEC INCA

Clef ssh

Voir le ticket n°1 http://forge.ipsl.jussieu.fr/inca/ticket/1

Portage du modèle sur svn

créer les répertoires branches tags et trunk

ssh -X inca@forge.ipsl.jussieu.fr (+ passwd)
svn mkdir file:///ipsl/forge/projets/inca/svn/trunk file:///ipsl/forge/projets/inca/svn/branches file:///ipsl/forge/projets/inca/svn/tags -m "INCA : trunk branches and tags directories creation"

Importer une nouvelle architecture

Mise en place sous svn de la configuration LMDZINCA parallèle. Commande à passer pour ajouter une configuration : !!! attention se placer au dessus du répertoire que l'on veut ajouter

svn import LMDZINCA_v2 svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/igcmg/svn/CONFIG/trunk/LMDZINCA_v2



Faire un commit

svn commit -m "message" namefile

Attention : vérifiez bien que vous travaillez en tant qu'administrateur et non pas comme utilisateur.

La commande delete

svn delete namefile
svn commit -m "deleted file" namefile



Connaitre les status de votre version

svn status [file]

permet de savoir si votre fichier a été modifier par rapport à l'archive svn

svn log [file]

indique toutes les révisions liées à ce fichier



Ajouter un répertoire ou un fichier

svn add newfile
svn commit -m "message" newfile



Faire un update sur un fichier ou un répertoire

svn update [file or repertory]

Exemple

$ svn update toto
U toto 

La commande svn update retourne une lettre (U, A, D, R, G ou C) plus le nom du fichier touché. Nous allons voir la signification de ces différentes lettres.

U : le fichier a bien été mis à jour, il n'y a aucun conflit. 
A : le fichier a été ajouté à votre répertoire, c'est donc qu'il n'existait pas avant. 
D : le fichier a été effacé de votre répertoire. 
R : le fichier a été remplacé dans votre répertoire. 
G : vous aviez fait des modifications dans le fichier d'origine mais ces modifications n'entre pas en conflit avec la mise à jour. 
C : il y a des conflits entre la mise à jour et vos propres modifications. Il faut donc ouvrir le fichier pour les régler manuellement. 



Ajouter un Id en entete des fichers

Rajouter en haut de chaque ficher la ligne suivante

! $Id$
ou (suivant la syntaxe)
# $Id$

Puis passer les lignes de commande suivantes :

svn propset svn:keywords "Id" *.f90
svn commit *.f90



Effacer un tag ou une branche

Exemple avec le tag v2_1 de INCA dans le projet inca
svn rm svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/tags/v2_1



Ajouter un tag ou une branche

Exemple avec pour créer le tag v2_1 à partir du tronc de INCA : 
svn cp \
 svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/trunk \
 svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/tags/v2_1



Recuperer inca3 sans passer par modipsl

pour un administrateur : 
svn co svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/trunk/INCA3



Faire un commit sur la config en partant de modipsl

Attention il faut avoir récupéré modipsl en administrateur ET la config LMDZINCA_v2 en administrateur également.

Pour cela modifier mod.def en ajoutant la ligne

#-S- 9 svn svn+ssh://yourlogin@forge.ipsl.jussieu.fr/ipsl/forge/projets/igcmg/svn

puis modifier l'appel pour la config voulue

#-C- LMDZINCA_v2  LMDZ4                     V3_test 3   .          modeles
#-C- LMDZINCA_v2  libIGCM                   ?       1   .          .
#-C- LMDZINCA_v2  CONFIG/trunk/LMDZINCA_v2  ?       8  LMDZINCA_v2 config
#-

devient 
#-C- LMDZINCA_v2  LMDZ4                     V3_test 3   .          modeles
#-C- LMDZINCA_v2  libIGCM                   ?       1   .          .
#-C- LMDZINCA_v2  CONFIG/trunk/LMDZINCA_v2  ?       9  LMDZINCA_v2 config
#-

Changer le statut de la version extraite avec svn

Si vous avez extrait le modèle en mode lecture seule, et que vous voulez finalement réaliser un commit dessus, vous pouvez changer le statut de cette version. Voici un exemple avec igcmg

svn switch --relocate http://forge.ipsl.jussieu.fr/igcmg/svn svn+ssh://login@forge.ipsl.jussieu.fr/ipsl/forge/projets/igcmg/svn

Connaitre les mises à jour faites sur le modèle

Si vous souhaitez connaitre les modifications apportées dans la base svn pour le modèle sur lequel vous travaillez :

svn log -rHEAD:BASE

ou pour connaître les modifications sur une branche depuis sa copie from trunk

svn log --stop-on-copy

pour faire un merge

Par exemple entre le trunk (INCA_trunk) et une branche (INCA_branche) créée depuis une copie du trunk.

  • extraire la version de la branche
  • connaitre le numéro de révision du commit que l'on veut merger (ex XXX)
    cd  INCA_branche
    svn merge -c XXX svn+ssh://acosce@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/trunk/INCA_trunk
    

Si l'on souhaite merger un ensemble de commit (de rev XXX à rev YYY)

cd  INCA_branche
svn merge -rXXX:YYY svn+ssh://acosce@forge.ipsl.jussieu.fr/ipsl/forge/projets/inca/svn/trunk/INCA_trunk

Si conflit lors d'un merge et qu'il n'y a rien à corriger on peut le résoudre avec

svn resolved [path fichier]
Last modified 2 years ago Last modified on 12/16/14 14:14:08