« Utilisation de SVN » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
Ligne 56 : Ligne 56 :




* Ajout de fichiers dans un dépôt
* Ajouter un fichier dans un dépôt : <font color="#007799">svn add PATH/file</font> et ensuite faire un <font color="#007799">commit</font> des modification avec <font color="#007799">svn commit</font>.
** Ajout d'un fichier :
<font color="#007799">svn add PATH/file</font> et ensuite faire un <font color="#007799">commit</font> des modification avec <font color="#007799">svn commit</font>.


** Ajout de plusieurs fichiers
Pour ajouter plusieurs fichiers d'un répertoire, la commande suivante le fait toute seule :
Pour ajouter plusieurs fichiers d'un répertoire, la commande suivante le fait toute seule :
<font color="#007799">/usr/bin/svn status | /bin/grep '?' | /bin/sed -e 's/^\?[ ]*//' | /usr/bin/xargs -iFILE /usr/bin/svn add "FILE"</font>
<font color="#007799">/usr/bin/svn status | /bin/grep '?' | /bin/sed -e 's/^\?[ ]*//' | /usr/bin/xargs -iFILE /usr/bin/svn add "FILE"</font>
ou encore on peut utiliser <font color="#007799">svn add * --force</font> : ajout de tout les nouveaux fichiers récursivement.
ou encore on peut utiliser <font color="#007799">svn add * --force</font> : ajout de tout les nouveaux fichiers récursivement.
** Exclure certaines extensions de fichiers lors d'un ajout recursif
Pour cela il faut ajouter cette propriété à <font color="#FF8000">chaque</font> répertoire concerné (exécueter cette commande dans le répertoire en question) :
<font color="#007799">svn setprop svn:ignore '*.user' .</font>
Faire ensuite un <font color="#007799">commit</font> normalement.

From now on, *.user files in that directory will no longer participate in svn commands such as stat, update, commit and so forth. You do have to add the property to each directory that requires an ignore field, however. It does not automatically act recursively on your project tree. If, for any reason, you do want to update an ignored file, you would pass the --no-ignores flag to the command.


<font color="#FF8000"> Attention : pensez à faire un update, vos modifications et ensuite un commit </font>
<font color="#FF8000"> Attention : pensez à faire un update, vos modifications et ensuite un commit </font>

Version du 9 décembre 2010 à 09:58

SVN

Svn (subversion) est le successeur de CVS et permet la gestion collaborative de développement de codes ou de documents.


Informations administration

La configuration présentée ici est une configuration TRES TEMPORAIRE qui va donc certainement fortement évoluer en fonction des souhaits des différents utilisateurs.

Localisation du serveur

La machine sur laquelle est installée le serveur svn est aussi la machine qui contient physiquement les dépôts.

- Machine invitée (Bibliothèque) : 193.48.123.84 (d84.lama.univ-savoie.fr) (ci après serveur)

- Répertoire qui contient les dépôts : /export/svn

Attention, cela signifie que pour le moment les dépôts ne font pas partie de l'espace sauvegardé du LAMA !


Informations pour utilisation

Avant de pouvoir créer un dépôt, vous devez avoir été ajouté au groupe des utilisateurs de svn et l'administrateur doit créer la racine du dépôt : merci donc de venir me voir ou m'envoyer un mail avec le nom du projet et les participants.


Utilisation basique

  • Création du dépôt

L'utilisateur doit créer le dépôt initial avec la commande svnadmin create PROJET_A.

ATTENTION A CHANGER LES DROITS DE L'ENSEMBLE DU REPERTOIRE POUR METTRE LES FICHIERS EN ECRITURE POUR TOUS LES MEMBRES DU GROUPE ! (chmod -R g+rw *).

  • Initier un dépôt (premier dépôt des sources)

svn import -m "Version originale" REPERTOIRE_LOCAL svn+ssh://USER@serveur/PROJET_A (Remplacer les majuscules par vos valeurs).

  • Récupérer un dépôt existant

Commande à exécuter dans le répertoire parent, qui contiendra la copie locale : svn checkout svn+ssh://serveur/PROJET_A.

Si l'authentification est requise pour votre dépôt, précisez votre nom d'utilisateur de cette manière : svn checkout svn+ssh://USER@serveur/PROJET_A

  • Récupérer une partie seulement d'un dépôt existant

Commande à exécuter dans le répertoire parent, qui contiendra la copie locale : svn checkout svn+ssh://serveur/PROJET_A/SousRep. Avec authentification : svn checkout svn+ssh://USER@serveur/PROJET_A/SousRep

  • Récupérer la dernière version d'un dépôt

Depuis la copie de travail locale (le répertoire local qui contient le projet) : svn update

  • Enregistrer des modifications dans un dépôt

Depuis la copie de travail locale (le répertoire local qui contient le projet) : svn commit -m "Message"


  • Ajout de fichiers dans un dépôt
    • Ajout d'un fichier :

svn add PATH/file et ensuite faire un commit des modification avec svn commit.

    • Ajout de plusieurs fichiers

Pour ajouter plusieurs fichiers d'un répertoire, la commande suivante le fait toute seule : /usr/bin/svn status | /bin/grep '?' | /bin/sed -e 's/^\?[ ]*//' | /usr/bin/xargs -iFILE /usr/bin/svn add "FILE" ou encore on peut utiliser svn add * --force : ajout de tout les nouveaux fichiers récursivement.

    • Exclure certaines extensions de fichiers lors d'un ajout recursif

Pour cela il faut ajouter cette propriété à chaque répertoire concerné (exécueter cette commande dans le répertoire en question) : svn setprop svn:ignore '*.user' . Faire ensuite un commit normalement.

From now on, *.user files in that directory will no longer participate in svn commands such as stat, update, commit and so forth. You do have to add the property to each directory that requires an ignore field, however. It does not automatically act recursively on your project tree. If, for any reason, you do want to update an ignored file, you would pass the --no-ignores flag to the command.

Attention : pensez à faire un update, vos modifications et ensuite un commit

Documentations diverses

http://subversion.tigris.org/

http://www.limsi.fr/Individu/pointal/subversion/

LE LIVRE : http://svnbook.red-bean.com/en/1.5/