Commande Linux svn

Linux 命令大全Référence complète des commandes Linux


SVN (Subversion) est un système de gestion de versions open source utilisé pour gérer l'historique des modifications des fichiers et des répertoires. Il aide les équipes de développement à collaborer sur des projets, à suivre les modifications du code et prend en charge le retour à une version précédente.

Analogie : considérez SVN comme une machine à remonter le temps. Il enregistre chaque modification de chaque fichier de votre projet, comme les points de sauvegarde dans un jeu. Vous pouvez revenir à n'importe quelle version précédente à tout moment.


Concepts de base de SVN

Dépôt

Le dépôt SVN est l'endroit où toutes les données de version sont stockées, équivalent à une base de données centrale. Il conserve l'historique complet du projet.

Copie de travail

Ceci est une copie du projet sur votre machine locale. Vous pouvez y apporter des modifications, puis commiter les modifications dans le dépôt.

Révision

Chaque commit génère un numéro de révision globalement unique pour identifier un état spécifique du projet.


Installation et configuration de SVN

Installer SVN

Sur la plupart des distributions Linux, vous pouvez l'installer via le gestionnaire de paquets :

Exemple

# Ubuntu/Debian
sudo apt-get install subversion

# CentOS/RHEL
sudo yum install subversion

# Fedora
sudo dnf install subversion

Vérifier l'installation

svn --version

Explication détaillée des commandes SVN courantes

Checkout du code

Récupérez le code depuis le dépôt SVN vers votre machine locale :

Exemple

svn checkout [URL du dépôt] [Répertoire local]
# Exemple :
svn checkout http://svn.example.com/svn/project/trunk myproject

Options courantes :

  • --username: Spécifier le nom d'utilisateur
  • --password: Spécifier le mot de passe
  • --non-interactive: Mode non interactif

Mettre à jour le code

Synchroniser la copie de travail locale avec la dernière version du dépôt :

Exemple

svn update
# Mettre à jour vers une révision spécifique
svn update -r 1234

Valider les modifications

Valider les modifications locales dans le dépôt :

svn commit -m "提交说明"

Afficher l'état

Afficher l'état de modification de la copie de travail :

svn status

Explication des indicateurs d'état :

  • A: Nouveau fichier ajouté
  • M: Fichier modifié
  • D: Fichier supprimé
  • ?: Fichier non versionné
  • !: Fichier manquant

Ajouter des fichiers

Placer les nouveaux fichiers sous contrôle de version :

Exemple

svn addNom du fichier
# Ajouter tous les nouveaux fichiers dans le répertoire courant
svn add --force .

Supprimer des fichiers

Supprimer des fichiers du contrôle de version :

svn delete 文件名

Afficher le journal

Afficher l'historique des commits :

Exemple

svn log
# Afficher le journal d'un fichier spécifique
svn logNom du fichier
# Limiter le nombre d'entrées affichées
svn log -l 10

Comparer les différences (Diff)

Afficher le contenu des modifications :

Exemple

# Comparer la copie de travail avec la révision de base
svn diff
# Comparer deux révisions
svn diff -r 100:200

Annuler les modifications

Abandonner les modifications locales :

Exemple

svn revertNom du fichier
# Annuler toutes les modifications
svn revert -R .

Résoudre les conflits

Des conflits peuvent survenir lorsque plusieurs personnes modifient le même fichier :

Exemple

# Afficher les fichiers en conflit
svn status
# Marquer comme résolu après avoir résolu le conflit
svn resolve --acceptworking fichier de conflit

Opérations avancées

Création de branches et fusion

Exemple

# Créer une branche
svn copyURL source URL cible-m "Description de création de branche"

# Fusionner une branche
svn mergeURL source[@Révision]Chemin de la copie de travail

Gestion des étiquettes

Exemple

# Créer une étiquette (même syntaxe que la création d'une branche)
svn copy http://svn.example.com/svn/project/trunk
         http://svn.example.com/svn/project/tags/1.0
         -m "Créer une étiquette pour la version 1.0"

Gestion des propriétés

Exemple

# Définir une propriété
svn propset svn:keywords "Date Rev Author"Nom du fichier

# Afficher la propriété
svn propgetsvn:keywords nom du fichier

Conseils pratiques

  1. Ignorer les fichiers: Créersvn:ignorepropriété pour exclure les fichiers qui n'ont pas besoin de gestion de versions

    svn propset svn:ignore "*.log" .
  2. Afficher les informations détaillées du fichier:

    svn info 文件名
  3. Exporter une copie propre(sans le répertoire .svn):

    svn export 仓库URL 本地目录
  4. Nettoyer la copie de travail:

    svn cleanup

Résolution des problèmes courants

Échec de l'authentification

Exemple

# Supprimer les informations d'authentification enregistrées
rm -rf ~/.subversion/auth/

Verrouillage de la copie de travail

svn cleanup

Processus de résolution des conflits

  1. Mettre à jour la copie de travail :svn update
  2. Résoudre manuellement les conflits (modifier le fichier)
  3. Marquer comme résolu :svn resolve --accept working 文件名
  4. Valider les modifications :svn commit -m "解决冲突"

Bonnes pratiques

  1. Mettre à jour la copie de travail avant de valider
  2. Rédiger des messages de commit explicites
  3. Valider fréquemment de petites modifications plutôt que de soumettre un grand nombre de modifications en une seule fois
  4. Utiliser des branches pour le développement de fonctionnalités
  5. Sauvegarder régulièrement le dépôt

Comparaison entre SVN et Git

Fonctionnalité SVN Git
Architecture Centralisé Distribué
Vitesse Plus lent Plus rapide
Branches/Fusions Plus complexe Simple et efficace
Travail hors ligne Prise en charge limitée Prise en charge complète
Courbe d'apprentissage Plus douce Plus abrupte

Résumé

SVN est un système de contrôle de version puissant et stable, particulièrement adapté aux projets nécessitant un contrôle strict des permissions et une gestion centralisée. En maîtrisant ces commandes et concepts de base, vous pouvez utiliser efficacement SVN pour votre travail quotidien de contrôle de version. N'oubliez pas que le cœur du contrôle de version réside dans des validations fréquentes et de bonnes habitudes de validation, ce qui fournira un filet de sécurité fiable pour le développement de votre projet.


Linux 命令大全Référence complète des commandes Linux

Autres extensions