Commande Linux svn
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
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
# 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
# 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
# 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
# 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
svn diff
# Comparer deux révisions
svn diff -r 100:200
Annuler les modifications
Abandonner les modifications locales :
Exemple
# Annuler toutes les modifications
svn revert -R .
Résoudre les conflits
Des conflits peuvent survenir lorsque plusieurs personnes modifient le même fichier :
Exemple
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
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
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
svn propset svn:keywords "Date Rev Author"Nom du fichier
# Afficher la propriété
svn propgetsvn:keywords nom du fichier
Conseils pratiques
-
Ignorer les fichiers: Créer
svn:ignorepropriété pour exclure les fichiers qui n'ont pas besoin de gestion de versionssvn propset svn:ignore "*.log" .
-
Afficher les informations détaillées du fichier:
svn info 文件名
-
Exporter une copie propre(sans le répertoire .svn):
svn export 仓库URL 本地目录
-
Nettoyer la copie de travail:
svn cleanup
Résolution des problèmes courants
Échec de l'authentification
Exemple
rm -rf ~/.subversion/auth/
Verrouillage de la copie de travail
svn cleanup
Processus de résolution des conflits
- Mettre à jour la copie de travail :
svn update - Résoudre manuellement les conflits (modifier le fichier)
- Marquer comme résolu :
svn resolve --accept working 文件名 - Valider les modifications :
svn commit -m "解决冲突"
Bonnes pratiques
- Mettre à jour la copie de travail avant de valider
- Rédiger des messages de commit explicites
- Valider fréquemment de petites modifications plutôt que de soumettre un grand nombre de modifications en une seule fois
- Utiliser des branches pour le développement de fonctionnalités
- 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.
Autres extensions