Communauté d’experts en rénovation de salle de bains

SVN est un système de contrôle de version centralisé. TortoiseSVN commande l'accès à distance via SSH

ajouter – Ajoute des fichiers, des répertoires et des liens symboliques, en les marquant pour une inclusion ultérieure dans le référentiel. Une fois marqués, ils sont téléchargés et ajoutés au référentiel la première fois que les modifications sont validées. Si vous avez ajouté quelque chose, mais que vous avez ensuite changé d'avis avant de l'épingler, vous pouvez supprimer la marque d'ajout à l'aide de la sous-commande svn revert.
svn ajoute CHEMIN...
$svn ajouter un répertoire de test

blâmer (louer, annoter, ann) – Affiche l'auteur et l'éditeur ligne par ligne pour les fichiers ou URL spécifiés. Chaque ligne de texte commence par le nom de l'auteur (nom d'utilisateur) et le numéro de révision. Cela indique qui et quand a modifié cette ligne pour la dernière fois.
svn blâme TARGET[@REV]…
$ svn blâme http://svn.red-bean.com/repos/test/readme.txt

cat – Imprime le contenu des fichiers ou des URL spécifiés. Pour lister le contenu des répertoires, utilisez svn list.
svn cat CIBLE[@REV]…
$ svn chat http://svn.red-bean.com/repos/test/readme.txt

checkout (co) – Crée une copie de travail basée sur les données du référentiel. Si PATH est omis, le nom de base de l'URL sera utilisé comme nom du répertoire de la copie de travail. Si plusieurs URL sont fournies, les copies correspondantes seront créées dans le sous-répertoire PATH, chacune dans son propre répertoire dérivé du nom de base de l'URL.
URL de paiement svn[@REV]…
svn checkout svn://svn.ru2web.ru/ru2web/branches/www-01/ /usr/home/vasia/ru2web.ru/app/

nettoyage – Nettoie de manière récursive la copie de travail, en supprimant les verrous restants des opérations inachevées. Dès que vous rencontrez l'erreur « la copie de travail est verrouillée », exécutez cette sous-commande pour supprimer les anciens verrous et mettre la copie de travail en état de fonctionnement.

Si, pour une raison quelconque, l'opération de la commande svn update a échoué en raison de problèmes avec le programme de comparaison externe en cours d'exécution (par exemple, j'ai cliqué sur quelque chose de mal ou il y a eu une panne de réseau), vous devez définir le paramètre –diff3-cmd sur permettre à la copie d'être nettoyée pour terminer toutes les jointures à l'aide d'un programme de comparaison externe. Vous pouvez également spécifier le répertoire de configuration à l'aide de l'option –config-dir, mais veillez à ne pas abuser de ces options.

commit (ci) – Envoie les modifications que vous avez apportées à la copie de travail au référentiel pour y être enregistrées. Si vous n'utilisez ni l'option –file ni –message, svn lancera un éditeur externe pour rédiger le commentaire. Lisez la description du paramètre editor-cmd dans "Config".
svn commit enverra toutes les étiquettes de verrouillage trouvées récursivement à l'installation de stockage et débloquera les ressources correspondant à ces étiquettes si le paramètre –no-unlock n'a pas été spécifié. La « zone de recherche » est spécifiée en spécifiant PATH.
validation svn

copy (cp) – Copie un fichier dans une copie de travail ou dans un stockage. SRC et DST peuvent être des chemins dans la copie de travail ou une URL dans le référentiel.
svn copie SRC DST

delete (del, delete, rm) – Suppression d'un élément d'une copie de travail ou d'un référentiel.
svn supprimer CHEMIN...
svn supprimer l'URL...

diff (di) – Affiche les différences entre la copie de travail et le référentiel.
$ svn diff http://svn.collab.net/repos/svn/trunk/COMMITTERS@3000 http://svn.collab.net/repos/svn/trunk/COMMITTERS@3500

export – Exportez une arborescence de répertoires propre (sans dossiers .svn).

aide (?, h) – Aide.

importer – Valide un fichier ou une arborescence non versionné dans le référentiel.
URL d'importation svn

info – Afficher des informations sur un élément local ou distant.
informations sur le SVN

list (ls) – Liste des répertoires du référentiel.
liste svn...]
$ liste svn http://svn.red-bean.com/repos/test/support

lock – Verrouillez la copie de travail dans le référentiel afin qu'aucun autre utilisateur ne puisse apporter de modifications au chemin donné.
svn lock CIBLE…
$ svn verrouiller arbre.jpg maison.jpg

log – Afficher les messages du journal.
svnlog
URL du journal svn
journal $svn

fusionner – Appliquer les différences entre deux sources.
$ svn merge -r 250:HEAD http://svn.red-bean.com/repos/branches/my-branch

mkdir – Créez un répertoire dans un référentiel à version contrôlée.
$svn mkdir nouveaurép

move (mv, rename, ren) – Déplacer un fichier ou un répertoire.
svn déplacer SRC DST

propdel (pdel, pd) – Supprime les propriétés des fichiers, répertoires ou révisions.
svn propdel NOM PROPRIÉTÉ
svn propdel NOMPROP –revprop -r REV

propedit (pedit, pe)
propget (pget, pg)
propliste (plit, pl)
propset (pset, ps)

résolu – Supprimez les « conflits » de la copie de travail des fichiers ou des répertoires.
svn a résolu CHEMIN…

revenir – Annule toutes les modifications locales.
$ svn rétablit monprj.phtml

status (stat, st) – Statut de la copie de travail des fichiers ou des répertoires.
$svn statut toilettes

switch (sw) – Mettez à jour la copie de travail vers une URL différente.

déverrouiller – Déverrouille la copie de travail.

update (up) – Mise à jour de votre copie de travail.

Introduction

La fonction d'aide de Subversion ( aide svn) fournit un résumé des commandes disponibles. Des informations plus détaillées sont disponibles dans le livre en ligne Subversion disponible sur http://svnbook.red-bean.com/en/1.2/index.html.

Le chapitre 3 est particulièrement utile.

Ce qui suit est un ensemble de commandes de base que tous les éditeurs utiliseront fréquemment. Certaines commandes ont deux formes, la longue et la courte. Les deux sont répertoriés dans la description. différence svn . Ceci est utile à deux fins différentes. Premièrement, ceux qui n'ont pas d'accès en écriture au serveur BLFS SVN peuvent l'utiliser pour générer des correctifs à envoyer à la liste de diffusion BLFS-Dev. Pour ce faire, modifiez simplement les fichiers dans votre bac à sable local, puis exécutez svn diff > FICHIER.patch à partir de la racine de votre répertoire BLFS. Vous pouvez ensuite joindre ce fichier à un message sur la liste de diffusion BLFS-Dev où une personne disposant des droits d'édition peut le récupérer et l'appliquer au livre. La deuxième utilisation est de savoir ce qui a changé entre deux révisions en utilisant : svn diff -r révision1:révision2 NOM DE FICHIER

. Par exemple: svn diff -r 168:169 index.xml affichera un diff montrant les changements entre les révisions 168 et 169 de index.xml . Subversion (SVN - Système de versions simultanées) - système centralisé

contrôle de version. Conçu pour remplacer

CVS , a la même fonctionnalité, mais ne présente pas bon nombre de ses inconvénients. Voir aussi : livre SVN. Configurer un serveur SVN

  • Dépôt SVN, tout simplement, dans cet exemple, répertoire,/home/svn/ , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : déposer://
  • - Accès direct via le système de fichiers en utilisant SVN client. Les privilèges doivent être définis correctement sur le système de fichiers local. svn:// , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : ou svn+ssh://- Accès à distance à serveur (également selon le protocole.
  • SSH). Nécessite des droits dans le système de fichiers local, port par défaut : 2690/tcp http:// Accès à distance via webdav
en utilisant

apache

. Cette méthode ne nécessite pas d'utilisateurs locaux. svn+ssh:// Importez et vérifiez un projet existant via le système de fichiers local. Il n'est pas nécessaire d'aller dans le répertoire de travail, vous pouvez simplement spécifier le chemin complet : # svn import /project1/ file:///home/svn/project1/trunk -m "Initial import" # svn checkout file:// /home/svn/project1 Dépôt SVN, tout simplement, dans cet exemple, répertoire, Accès à distance via le protocole SSH Accès à distance via protocole. Par exemple : # svn checkout svn+ssh://hostname/home/svn/project1 Comme dans le cas d'un accès local, l'utilisateur doit disposer d'un compte pour accéder via le protocole svn+ssh:// au serveur et des autorisations de lecture/écriture correctement configurées. Cette méthode peut convenir à de petits groupes d'utilisateurs, les utilisateurs du groupe sont les propriétaires du référentiel, par exemple : # groupadd subversion # groupmod -A user1 subversion # chown -R root:subversion /home/svn # chmod -R 770 / accueil/svn

Accès à distance via HTTP (Apache)

Accès à distance via HTTP(HTTPS), une solution adaptée aux groupes d'utilisateurs distants. Cette méthode utilise l'authentification du serveur Web Apache(pas les comptes locaux). Voici une configuration typique : LoadModule dav_module modules/mod_dav.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # Pour le contrôle d'accès uniquement DAV svn # L'URL "/svn/foo" sera mappée au chemin du référentiel /home/svn/foo SVNParentPath /home/svn AuthType Basic AuthName "Dépôt Subversion" AuthzSVNAccessFile /etc/apache2/svn.acl AuthUserFile /etc/apache2/ svn- passwd Nécessite un utilisateur valide du serveur Apache doit avoir un accès complet au référentiel : # chown -R www:www /home/svn Créez un utilisateur en utilisant mot de passe ht: # htpasswd -c /etc/svn-passwd utilisateur1 #-c Créer un fichier

Exemple de contrôle d'accès svn.acl

# Accès en lecture par défaut. "* =" n'aura pas accès par défaut[/] * = r project1-developers = Joe, Jack, Jane # Donner des autorisations d'écriture aux développeurs@project1-developers=rw

Quelques commandes pour gérer le référentiel SVN

Voir également la carte de référence rapide Subversion. Tortoise SVN, une bonne interface Windows.

Importer

Vous pouvez importer un nouveau projet contenant des répertoires et des fichiers dans le référentiel à l'aide de la commande importer. La même commande est également utilisée pour ajouter un répertoire avec son contenu à un projet déjà existant. # svn aide à l'importation # Aide sur commande# Ajoutez un nouveau répertoire et son contenu au répertoire src du projet1.

# svn import /project1/newdir http://host.url/svn/project1/trunk/src -m "ajouter un nouveau répertoire"

Commandes SVN typiques # svn co http://host.url/svn/project1/trunk # Passez votre commande pour la dernière version# Les balises et les branches sont créées par copie # svn mkdir http://host.url/svn/project1/tags/# Créer un répertoire de tags # svn copy -m "Tag rc1 rel." http://host.url/svn/project1/trunk \ http://host.url/svn/project1/tags/1.0rc1 # statut svn [--verbose]# svn ajoute src/file.h src/file.cpp # Ajouter deux fichiers# svn commit -m "Nouveau fichier de classe ajouté" # Envoyer les modifications par message# svn ls http://host.url/svn/project1/tags/ # Liste de toutes les balises# svn move foo.c bar.c # Déplacer (renommer) des fichiers# svn delete some_old_file # Supprimer des fichiers

Extrait

Paiement SVN [-profondeur ARG] [--ignore-externals] [-r rev] CHEMIN DE L'URL

Si la case est cochée Passer externe

Si vous récupérez une révision spécifique, spécifiez-la après l'URL à l'aide du paramètre -r.

Mise à jour

Informations SVN URL_working_copy svn update [-r rev] CHEMIN

Mise à jour de plusieurs éléments dans à l'heure actuelle n'est pas une opération atomique dans Subversion. Par conséquent, TortoiseSVN trouve d'abord la révision principale (HEAD) dans le référentiel, puis met à jour tous les éléments avec cette révision pour éviter de créer une copie de travail avec des révisions mixtes.

Si un seul élément est sélectionné pour être mis à jour, ou si les éléments sélectionnés ne proviennent pas tous du même référentiel, TortoiseSVN se met simplement à jour vers la révision principale.

Aucune option de ligne de commande n'est utilisée ici. Mise à jour vers la révision implémente également la commande update, mais offre plus de fonctionnalités.

Mise à jour vers la révision

Informations SVN URL_working_copy svn update [-r rev] [-profondeur ARG] [--ignore-externals] CHEMIN

Les éléments de la zone de liste déroulante profondeur se rapportent à l'argument -profondeur.

Si la case est cochée Passer externe, utilisez l'option --ignore-externals.

Réparer

Dans TortoiseSVN, la boîte de dialogue de validation utilise plusieurs commandes Subversion. La première étape est une vérification de l'état, qui identifie les éléments de votre copie de travail qui pourraient potentiellement être validés. Vous pouvez parcourir cette liste, comparer les fichiers à leur base et sélectionner les éléments que vous souhaitez inclure dans le commit.

Statut du serveur -v CHEMIN

Si la case est cochée

Si vous marquez des fichiers et des dossiers sans version, ces éléments seront d'abord ajoutés à votre copie de travail.

Svn ajoute CHEMIN...

Lorsque vous cliquez sur OK, Subversion commence à exécuter la validation. Si vous laissez toutes les cases à cocher des fichiers dans leur état par défaut, TortoiseSVN utilise une seule validation récursive de la copie de travail. Si vous avez décoché certains fichiers, alors une validation non récursive (-N) doit être utilisée et chaque chemin doit être spécifié individuellement sur la ligne de commande de validation.

Svn commit -m "LogMessage" [-profondeur ARG] [--no-unlock] CHEMIN...

Le LogMessage représente ici le contenu du champ de saisie du message de journal. Il est peut-être vide.

Différence

CHEMIN diff.svn

Si vous utilisez la commande Diff du menu contextuel principal, vous comparez le fichier modifié avec sa révision de base. La sortie de l'ICS de la commande ci-dessus fait également cela et produit une sortie au format de différences combinées. Cependant, TortoiseSVN ne l'utilise pas. TortoiseSVN utilise TortoiseMerge (ou un programme de comparaison de votre choix) pour afficher visuellement les différences entre les fichiers texte, il n'y a donc pas d'équivalent direct à SVN.

Vous pouvez également comparer deux fichiers quelconques à l'aide de TortoiseSVN, qu'ils soient ou non sous contrôle de version. TortoiseSVN alimente simplement ces deux fichiers dans le programme de comparaison choisi et lui permet de déterminer où se trouvent les différences.

Revue

Svn log -v -r 0:N --limit 100 [--stop-on-copy] PATH ou svn log -v -r M:N [--stop-on-copy] PATH

Par défaut, TortoiseSVN essaie d'extraire 100 messages de journal en utilisant la méthode --limit. Si les installations sont obligées d'utiliser les anciennes API, le deuxième formulaire est utilisé pour récupérer les messages de journal pour 100 révisions du référentiel.

Si la case est cochée Arrêtez-vous à copier/renommer, utilisez l'option --stop-on-copy.

Vérification des modifications

Statut Svn -v PATH ou statut svn -u -v PATH

La vérification de l'état initial porte uniquement sur votre copie de travail. Si vous cliquez sur Vérifier le stockage, le référentiel est également vérifié pour voir quels fichiers seront modifiés par la mise à jour, ce qui nécessite l'option -u.

Si la case est cochée Afficher les fichiers non versionnés, TortoiseSVN affichera également les fichiers et dossiers non versionnés dans la hiérarchie de la copie de travail, en respectant les règles d'ignorance. Cette propriété particulière n'a pas d'équivalent direct dans Subversion, puisque la commande svn status ne va pas dans les dossiers non versionnés.

Graphique de révision

Le graphique de révision est une fonctionnalité fournie uniquement par TortoiseSVN. Il n'y a pas d'équivalent dans le client en ligne de commande.

Ce que fait TortoiseSVN :

Informations SVN URL_working_copy journal svn -v URL

où se trouve l'URL racine stockage, puis analyse les données renvoyées.

Explorateur de stockage

Informations svn Working_copy URL svn list [-r rev] -v URL

Vous pouvez utiliser svn info pour définir la racine du référentiel : c'est le niveau supérieur affiché dans le navigateur du référentiel. Vous ne pouvez pas dépasser ce niveau. En outre, cette commande renvoie toutes les informations de verrouillage affichées dans l'Explorateur de stockage.

L'appel de svn list répertoriera le contenu du dossier, pour l'URL et la révision spécifiées.

Modifier les conflits

Cette commande n'a pas d'équivalent dans ICS. Il appelle TortoiseMerge ou un outil externe de comparaison/fusion à trois voies pour afficher les fichiers impliqués dans le conflit et sélectionner les lignes à utiliser.

Réglé

Svn a résolu PATH

Rebaptiser

Svn renommer CURRENT_PATH NEW_PATH

Supprimer

Svn supprimer PATH

Supprimer les modifications

Statut du serveur -v CHEMIN

La première étape est une vérification de l'état, identifiant les éléments de votre copie de travail sur lesquels des modifications pourraient potentiellement être supprimées. Vous pouvez afficher la liste, comparer les fichiers avec la base de données et sélectionner les éléments dans lesquels vous souhaitez supprimer les modifications.

Lorsque vous cliquez sur OK, Subversion supprimera les modifications. Si vous laissez tous les indicateurs de sélection de fichiers dans leur état par défaut, TortoiseSVN utilise une seule annulation récursive (-R) des modifications apportées à la copie de travail. Si vous décochez certains fichiers, chaque chemin doit être spécifié individuellement sur la ligne de commande pour supprimer les modifications.

Svn rétablit [-R] CHEMIN...

Nettoyage

CHEMIN de nettoyage SVN

Bloc

Statut du serveur -v CHEMIN

La première étape est une vérification de l'état, qui identifie les fichiers de votre copie de travail susceptibles d'être verrouillés. Vous pouvez sélectionner les éléments que vous souhaitez bloquer.

Svn lock -m "LockMessage" [--force] CHEMIN...

LockMessage est le contenu du champ du message de verrouillage. Il est peut-être vide.

Si la case est cochée Intercepter les verrous, utilisez l'option --force.

Déblocage

Svn déverrouiller CHEMIN

Branche/Étiquette

Svn copy -m "LogMessage" URL URL ou svn copy -m "LogMessage" ou svn copy -m "LogMessage" PATH URL

La boîte de dialogue Branche/Étiquette effectue une copie vers le stockage. Il y a 3 boutons commutables :

  • Révision principale dans le référentiel (HEAD)
  • La révision spécifiée dans le référentiel
  • Copie de travail

qui correspondent aux trois options de ligne de commande ci-dessus.

Cette série d'articles est consacrée à l'introduction à l'utilisation , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes :, du point de vue d'un utilisateur ordinaire. L'article a été écrit pour aider mes collègues à apprendre et à utiliser rapidement , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes :. Alors commençons par les bases.

Introduction

Subversion ( , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes :) est un système de contrôle de version gratuit et open source. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : vous permet de gérer les fichiers et les répertoires, ainsi que les modifications qui y sont apportées au fil du temps. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : offre les fonctionnalités suivantes :

  1. Contrôle des changements de répertoire. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : utilise un système de fichiers « virtuel » avec des capacités de gestion de versions capables de suivre les modifications au fil du temps sur des structures de répertoires entières
  2. Histoire vraie versions. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : permet d'ajouter, supprimer, copier et renommer des fichiers et des répertoires. De plus, chaque fichier nouvellement ajouté commence sa vie à partir de zéro, en conservant son propre historique de modifications.
  3. Validation atomique des modifications. Chaque ensemble de modifications se retrouve entièrement dans le référentiel ou n'y arrive pas du tout. Ceux. si, lors de la validation des modifications du projet, une erreur s'est produite lors du traitement du fichier, les modifications apportées à l'ensemble du projet ne seront pas validées
  4. Métadonnées avec versions. Chaque fichier et répertoire possède son propre ensemble de propriétés, représenté par un nom et une valeur. Vous pouvez créer et enregistrer toutes les paires nécessaires de noms de propriétés et leurs valeurs. Les propriétés des fichiers sont tout aussi versionnées que leur contenu
  5. Une manière unifiée de travailler avec les données. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : détecte les différences entre les fichiers à l'aide d'un algorithme binaire spécial qui fonctionne de la même manière avec les fichiers texte et binaires. Les fichiers sont écrits dans le stockage sous forme compressée quel que soit leur type, et les différences entre les versions individuelles peuvent être transmises sur le réseau dans les deux sens.
  6. Branches et balises efficaces. , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : crée des branches et des balises en copiant simplement un projet, en utilisant un mécanisme similaire aux liens physiques dans les systèmes de fichiers. Grâce à cela, les opérations de création de branches et de tags prennent peu de temps.


Liste des termes de base

  1. Dépôt(dépôt) est un référentiel centralisé de codes sources, de matériel de travail et de documentation. N'importe quel nombre de clients se connectent au stockage et lisent ou écrivent ces fichiers
  2. Copie de travail/copie de travail(WC) est une arborescence régulière de répertoires sur un ordinateur contenant un ensemble de fichiers permettant de travailler sur un projet. Les modifications apportées à la copie de travail ne sont pas disponibles pour les autres utilisateurs du référentiel tant qu'elles ne sont pas validées.
  3. Tronc— orientation principale du développement
  4. Bifurquer(«Branche») est une direction de développement qui existe indépendamment d'une autre direction, mais qui a une histoire commune avec elle. Une branche commence toujours comme une copie de quelque chose et part de ce point, créant sa propre histoire
  5. Étiqueter(«Label») - une version explicitement sélectionnée des fichiers du projet en créant un dossier séparé certain moment temps.
  6. Révision— numéro de révision du référentiel, au sein du référentiel le numéro de révision est une valeur unique
  7. Vérifier- une équipe qui effectue la réception initiale du projet depuis le référentiel en WC.
  8. Commettre- une commande qui valide les modifications apportées aux fichiers de projet dans WC dans le référentiel.
  9. Mise à jour- une commande qui met à jour les fichiers du projet dans WC à partir du référentiel
  10. Revenir- une commande qui annule toute modification apportée aux fichiers de projet dans WC en fonction du numéro de révision du référentiel.
  11. Fusionner- une commande qui fusionne les fichiers des différentes branches du projet et place le résultat de la fusion dans WC.
  12. Conflit- une situation qui se produit lors de la validation des modifications, lorsque les mêmes fichiers ont été modifiés par plusieurs développeurs.
  13. Résoudre- un ensemble de règles pour résoudre les conflits émergents.
  14. Importer- une commande pour copier rapidement une arborescence de fichiers dans le Repository.
  15. Exporter- la commande d'exportation d'un projet diffère de l'extraction en ce sens qu'elle ne crée pas d'informations de service dans les dossiers du projet.
  16. Changer- une commande qui fait basculer WC vers une autre branche de développement.
  17. Créer, Ajouter, Supprimer, Copie, Se déplacer, Rebaptiser- des commandes de gestion des fichiers et dossiers dans le référentiel ou WC.

Logiciel

Travailler avec le référentiel , doit exister : # svnadmin create --fs-type fsfs /home/svn/project1 Vous pouvez vous connecter au référentiel des manières suivantes : examiné sur la base d'un logiciel TortueSVN

Publications connexes