Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
doc:subversion [08/05/2016 16:47] – [Check out anonyme] scorpio810 | doc:subversion [11/08/2017 01:21] (Version actuelle) – [Check out identifié] scorpio810 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Utilisation du dépôt Subversion en tant que développeur / contributeur identifié ====== | ||
+ | Cette page se veut un résumé rapide des manipulations relatives au dépôt Subversion qu'un contributeur au projet QElectroTech peut être amené à effectuer. La bible sur Subversion reste toutefois le [[http:// | ||
+ | ===== Faire un check out ===== | ||
+ | ===== Check out anonyme ===== | ||
+ | |||
+ | <code bash> | ||
+ | svn checkout svn:// | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Check out identifié ===== | ||
+ | |||
+ | Un check out permet de créer une copie local (on parle de " | ||
+ | Utilisez les commandes ci-dessous en remplaçant '' | ||
+ | |||
+ | <code bash> | ||
+ | # Check Out du trunk | ||
+ | svn co " | ||
+ | # Check Out de la branche 0.3 | ||
+ | svn co " | ||
+ | |||
+ | svn co " | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Je me suis gouré, j'ai fait un check out anonyme ===== | ||
+ | Rendez-vous dans votre dossier de travail Subversion et utilisez les commandes suivantes : | ||
+ | <code bash> | ||
+ | svn_user=votre_identifiant_ici | ||
+ | find . -type f -name entries -exec sed -i " | ||
+ | svn up | ||
+ | </ | ||
+ | |||
+ | ===== Mettre à jour son répertoire de travail ===== | ||
+ | < | ||
+ | Les fichiers mis à jour sont alors affichés précédés par une lettre représentant l' | ||
+ | * A : fichier ajouté | ||
+ | * D : fichier supprimé | ||
+ | * U : fichier mis à jour sans problème | ||
+ | * G : fichier modifié dans votre répertoire de travail et mis à jour sans conflit | ||
+ | * C : fichier modifié dans votre répertoire de travail mais dont la mise à jour entre en conflit avec les modifications locales | ||
+ | ===== Gérer ses modifications ===== | ||
+ | Il est possible de lister les fichiers modifiés avec la commande : <code bash>svn status</ | ||
+ | Les fichiers peuvent être ajoutés au versionnement via svn add puis manipulés via svn mv, svn cp et svn rm. | ||
+ | Les modifications peuvent être visualisés via svn diff ; exemple : | ||
+ | < | ||
+ | <code diff> | ||
+ | Index: sources/ | ||
+ | =================================================================== | ||
+ | --- sources/ | ||
+ | +++ sources/ | ||
+ | @@ -21,7 +21,9 @@ | ||
+ | # | ||
+ | class Diagram; | ||
+ | class ElementsCollection; | ||
+ | +class ElementsCategory; | ||
+ | class XmlElementsCollection; | ||
+ | +class MoveElementsHandler; | ||
+ | /** | ||
+ | Cette classe represente un projet QET. Typiquement enregistre dans un | ||
+ | fichier, il s'agit d'un document XML integrant des schemas ainsi qu'une | ||
+ | </ | ||
+ | |||
+ | Il est également possible de visualiser les différences sur les fichiers texte de manière conviviale avec [[http:// | ||
+ | |||
+ | Dernière alternative : <code bash>svn diff | colordiff | less -R</ | ||
+ | |||
+ | Autres commandes utiles : | ||
+ | * svn export : même utilité que co / checkout, mais le résultat obtenu n'est pas un répertoire de travail Subversion (= il n'y a pas de sous-dossiers .svn) ; cela permet de faire une simple extraction d'une arborescence du dépôt | ||
+ | * svn cat : prend en paramètre une liste de fichiers (y compris directement dans le dépôt) et affiche leur contenu sur la sortie standard. | ||
+ | * svn revert : restaure l' | ||
+ | * svn resolved : marque un fichier en conflit (état '' | ||
+ | * svn blame : permet de savoir, pour une liste de fichiers données, qui est l' | ||
+ | * svn merge : prend trois arguments, fait un diff entre les deux premiers et l' | ||
+ | * svn info : affiche des informations sur le répertoire de travail courant | ||
+ | * svn help : apporte de l'aide sur une commande | ||
+ | ===== Envoyer ses modifications ===== | ||
+ | |||
+ | Une fois les modifications terminées et dignes de figurer dans le dépôt Subversion, il faut les commiter. Avant de commiter, il est recommandé de faire un dernier svn up, pour s' | ||
+ | <code bash>svn ci -m " | ||
+ | Il est toutefois recommandé d' | ||
+ | * une zone pour écrire le message de commit | ||
+ | * une zone listant les fichiers qui vont être commités | ||
+ | Cela permet de vérifier une dernière fois le contenu du commit. Si le fichier n'est pas modifié ('': | ||
+ | < | ||
+ | Correction d'un bug qui empechait la fermeture d'un projet ne comportant aucun schema. | ||
+ | |||
+ | --Cette ligne, et les suivantes ci-dessous, seront ignorées-- | ||
+ | M sources/ | ||
+ | M sources/ | ||
+ | M sources/ | ||
+ | </ | ||
+ | Note : pour diverses raisons, merci d' | ||
+ | |||
+ | ===== Modifier un message de commit ===== | ||
+ | Modifier un message de commit implique d' | ||
+ | <code bash> | ||
+ | #!/bin/bash | ||
+ | |||
+ | REV=" | ||
+ | REPOS_URL=" | ||
+ | REPOS_PATH=" | ||
+ | TMP_FILE=" | ||
+ | |||
+ | # recupere le message actuel | ||
+ | svn log -r " | ||
+ | vim " | ||
+ | |||
+ | echo -n " | ||
+ | read answer | ||
+ | [ " | ||
+ | svnadmin setlog " | ||
+ | |||
+ | echo " | ||
+ | svn log -r " | ||
+ | </ |