Quelle est la différence entre SCM et SVN? Et en quoi git diffère-t-il de mercurial?
SCM signifie généralement Software Configuration Management , qui inclut CMRM (Change Management jusqu'à Release Management), y compris le versioning.
SVN n'est qu'un VCS: Version Control Tool .
Ainsi, l'un est beaucoup plus complet et couvre plus complètement le cycle de vie du développement, tout en étant générique: Team Fundation Server ou RTC - Rational Team Concert - sont deux exemples de SCM.
SCM est la gestion de la configuration logicielle et SVN est un outil du système de contrôle de version, qui est un sous-ensemble de SCM. VCS sont également appelés Revision Control et Git, Mercurial sont également des outils VCS (VCS distribué pour être plus spécifique.)
SVN, Git, Mercurial, etc. sont des outils de contrôle de révision, l'un des processus de SCM. SCM comprend également la gestion des builds, le suivi des défauts, etc.
SCM est un terme générique qui ne signifie pas grand-chose. Je l'ai entendu comme signifiant "Gestion de la configuration logicielle", "Gestion des modifications logicielles" et "Gestion du code source", et il y en a probablement d'autres. Il s'agit essentiellement de marketing pour autant que je sache.
Si vous le voyez comme signifiant quelque chose comme la dernière phrase, alors SVN (abréviation de Subversion), git et Mercurial sont tous des types particuliers de systèmes SCM. Git et Mercurial sont à peu près équivalents. Il y a de légères différences, mais les préférences personnelles sont vraiment la majorité de ce qui compte. Les deux sont ce qu'on appelle des systèmes de contrôle de révision distribués, ce qui signifie qu'aucun emplacement central ne doit être utilisé. Chaque personne qui les utilise peut travailler de manière indépendante et synchronise tout plus ou moins indépendamment.
Subversion est centralisé. Il vise à résoudre les mêmes types de problèmes, mais le fait en forçant toutes les activités à passer par un seul endroit que tout le monde utilise. Cela rend beaucoup de choses plus faciles à gérer, mais au prix d'une assez grande flexibilité. Encore une fois, la préférence personnelle dicte celle que vous préférez.
J'ai essayé Git et Mercurial (et utilise actuellement Mercurial). D'après ce que j'ai vu, Git semble être un peu plus rapide et peut-être plus polyvalent, mais cela a un coût pour la courbe d'apprentissage. Lorsque je les ai essayés tous les deux au début, je n'avais pas d'autres collègues sur lesquels me fier pour obtenir des informations et j'ai trouvé la courbe d'apprentissage de Git beaucoup plus raide que celle de Mercurial. J'ai également trouvé que Mercurial était beaucoup plus facile à utiliser à partir de Windows (qui est ma principale plate-forme de développement).
Mercurial prend en charge Git et l'inverse est probablement vrai aussi, vous pouvez donc probablement essayer l'un et l'autre plus tard si vous en avez besoin.
SVN (Subversion) est un outil qui fournit des fonctionnalités de versioning.Les développeurs ont utilisé cet outil pour vérifier leurs codes. En utilisant cela, nous pouvons suivre les modifications apportées aux fichiers/codes pendant le processus de développement logiciel.
Software Configuration Management est une pratique utilisée pour suivre et contrôler les changements dans le développement logiciel. Il comprend tous les processus nécessaires pour créer, empaqueter et déployer des logiciels.