Maison >Problème commun >Quelle est la différence entre SVN et CVS
Différences : 1. Le numéro de version de CVS est basé sur le numéro de série auto-croissant du fichier, tandis que celui du SVN est basé sur le numéro de série global auto-croissant, non seulement pour les fichiers, mais aussi pour les répertoires. 2. CVS est basé ; sur les fichiers RCS, tandis que SVN Il est basé sur une base de données relationnelle ou une série de fichiers binaires ; 3. CVS permet une restauration arbitraire, mais SVN n'autorise pas la restauration après soumission 4. SVN prend en charge le principe de transaction "zéro ou un", mais CVS ne le prend pas en charge ; 5. CVS ne prend pas en charge la soumission de changement de nom de fichier local, alors que SVN le prend en charge ; 6. CVS a quatre autorisations, tandis que SVN n'en a que trois.
L'environnement d'exploitation de ce tutoriel : système Windows 7, Subversion version 1.14, ordinateur Dell G3.
CVS (Concurrent Versions System) :
est un système de versions simultanées pour développer du code source. Il est disponible pour diverses plates-formes, notamment Linux, Unix et Windows NT/2000/XP, etc. CVS est gratuit et open source et assure la gestion des versions des projets.
Introduction à la fonction :
1. Gestion unifiée du code, sauvegarde de l'historique de toutes les modifications des fichiers de code. La gestion centralisée et unifiée du code facilite la visualisation des fichiers nouvellement ajoutés ou supprimés et le suivi de toutes les traces de modifications du code. Vous pouvez restaurer n'importe quelle version historique précédente à volonté. Et évitez les BUG profonds introduits en raison des différentes versions.
2. La solution parfaite de résolution des conflits peut facilement résoudre les problèmes de conflits de fichiers sans avoir besoin d'utiliser d'autres outils de comparaison de fichiers ni de collage et de copie manuels.
3. Gestion des autorisations de code. Différentes autorisations peuvent être définies pour différents utilisateurs. Des mots de passe, des autorisations de lecture seule, de modification et autres pour l'accès des utilisateurs peuvent être définis, et via des scripts dans le répertoire CVS ROOT, une interface pour l'extension des fonctions correspondantes est fournie, qui peut non seulement compléter un contrôle précis des autorisations, mais également compléter davantage fonctions personnalisées.
4. Prend en charge les fonctions pratiques de publication de version et de branchement.
SVN (Subversion) :
Le nom complet de SVN est Subversion, qui est un système de contrôle de version. SVN est l'abréviation de Subversion. Il s'agit d'un système de contrôle de version open source. Comparé à RCS et CVS, son objectif de conception est de remplacer CVS. De nombreux services de contrôle de version sur Internet ont migré de CVS vers Subversion.
SVN est un système de gestion centralisé des versions de fichiers.
Le cœur de la gestion centralisée du code est le serveur. Tous les développeurs doivent obtenir le code du serveur avant de commencer une nouvelle journée de travail, puis développer, et enfin résoudre les conflits et le soumettre. Toutes les informations de version sont placées sur le serveur. Si vous êtes déconnecté du serveur, les développeurs ne peuvent pratiquement pas travailler.
(SVN) Workflow de gestion centralisé :
Le cœur de la gestion centralisée du code est le serveur. Tous les développeurs doivent récupérer le code du serveur avant de commencer une nouvelle journée de travail, puis développer et enfin résoudre les conflits, le soumettre. . Toutes les informations de version sont placées sur le serveur. Si vous êtes déconnecté du serveur, les développeurs ne peuvent pratiquement pas travailler.
Le processus de gestion est le suivant :
La différence entre svn et cvs
CVS | SVN | |
À propos du numéro de version | Numéro de série à incrémentation automatique en fonction du fichier. | Basé sur un numéro de série global auto-croissant, non seulement pour les fichiers, mais aussi pour les répertoires, etc. |
Format de type de stockage | CVS est un système de contrôle de version basé sur des fichiers RCS. Chaque fichier CVS n'est qu'un fichier normal contenant des informations supplémentaires. Ces fichiers répètent simplement la structure arborescente des fichiers locaux. Par conséquent, vous n'avez pas à vous soucier d'une éventuelle perte de données, vous pouvez modifier le fichier RCS manuellement si nécessaire. | SVN est basé sur une base de données relationnelle (BerkleyDB) ou une série de fichiers binaires (FS_FS). D'une part, cela résout de nombreux problèmes (par exemple, la lecture et l'écriture parallèles de fichiers partagés) et ajoute de nombreuses nouvelles fonctionnalités (par exemple, les fonctionnalités transactionnelles du runtime.). D’un autre côté, le stockage des données devient opaque ou moins convivial. C'est pourquoi les outils logiciels sont devenus si importants pour les entrepôts (bases de données). |
La vitesse d'accès | est relativement lente ; car elle est basée sur un transfert de fichiers différencié unidirectionnel (serveur -> client) | Dans l'ensemble, en raison des différentes implémentations d'architecture, SVN est en effet beaucoup plus rapide que CVS ; Utilisez le transfert de fichiers différentiel bidirectionnel. Il transmet très peu d'informations sur le réseau et prend en charge davantage de fonctionnalités en mode hors ligne. Mais cela a un coût. Le prix de la vitesse est un stockage énorme (sauvegarde complète de tous les fichiers de travail). |
Métadonnées | Autorise uniquement le stockage des fichiers | Permet à un fichier d'avoir des attributs nommables. La fonction est très complète, mais je ne sais pas à quoi elle sert. Le type de fichier |
SVN se souciera de tous les types de fichiers et ne vous obligera pas à effectuer des opérations manuelles car son stockage est basé sur le binaire | Rollback | |
SVN n'autorise pas la restauration après la soumission. Nous vous recommandons d'ajouter la bonne version dans le référentiel jusqu'à la fin et d'écraser la version corrompue. La version corrompue sera de toute façon stockée dans la base de données. | Transactions | |
Prend en charge le principe de transaction "zéro ou un", qui est un avantage majeur de SVN | Architecture, code, évolutivité | |
Les développeurs Subversion passent vraiment beaucoup de temps sur l'architecture interne. Nous ne savons toujours pas à quel point ces décisions étaient vraies, etc. Mais une chose est sûre, le code présente une bonne évolutivité et des travaux d'amélioration sont également en cours. | Opérations de renommage et de suppression | |
Prend en charge le renommage et la soumission des fichiers. Le système vous demandera de supprimer les anciens fichiers et d'en créer de nouveaux | .La suppression de fichiers locaux et la soumission de fichiers dans la bibliothèque seront également supprimées||
Autorisations d'accès utilisateur | Il existe quatre autorisations : lecture, écriture, création, aucune. Personne ne peut supprimer le dossier (l'administrateur ne peut exécuter que sur le serveur et. télécharger les fichiers correspondants Suppression cruelle ? Je ne connais que cette méthode pour l'instant...) | Il n'y a que trois autorisations : lecture, écriture et aucune Les autorisations de création et de suppression semblent être groupées avec l'écriture |
Création de branches et. lignes de base | CVS crée Lors de la création d'une branche, tous les fichiers branchés doivent être exploités de manière séquentielle. Par conséquent, le coût d'établissement d'une branche (principalement le temps nécessaire à l'établissement d'une branche ou les ressources informatiques consommées) est proportionnel au nombre de fichiers participants. dans la branche. Plus le projet est grand, plus le référentiel est grand, plus il y a de fichiers et plus le coût d'établissement d'une branche est similaire à celui-ci ; | Les branches et bases de référence de SVN sont établies en effectuant des « copies » : rappelez-vous comment nous effectuions la gestion dite des "branches" et des "bases de référence" avant l'introduction des outils de gestion de versions ? La réponse est évidemment « copie » - nous établissons une base de référence via « copie » ou « sauvegarde » de la même manière, pour prendre en charge plusieurs développeurs développant en même temps, nous créons une « copie » pour chaque développeur ; |
(Partage de vidéos d'apprentissage : Vidéo de programmation de base)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!