Contrôle de source contre contrôle de révision?

Quel est le nom correct pour un système qui stocke des versions du code source, comme SVN ou TFS?

Je l’ai toujours appelé contrôle de source, mais des endroits comme Wikipedia l’appellent le contrôle de révision?

Pour rendre ces sites plus compliqués comme celui-ci ont un tag pour les deux?

  • Revision Control est le terme le plus générique, utilisé pour les outils de contrôle de code source mais aussi pour d’autres outils (Word, OpenOffice,…). Il référence une version.

  • Le contrôle de code source offre un contrôle de révision avec des twigments et des fusions qui ne sont pas toujours disponibles dans tous les outils de révision (Word n’est pas un contrôle de source, mais offre des fonctionnalités de contrôle de révision)

  • Le contrôle de version est un terme plus général que le contrôle de code source en ce sens qu’il gère toute version (sources, binarys ou tout type de document).

Remarque: SCM signifie Gestion du code source, mais également pour la gestion du code logiciel, afin de refléter la même idée (pas seulement les “sources” sont gérées).
Plus SCM introduit la notion de dépendances entre groupes de fichiers.
Et cela peut aussi inclure la notion de cycle de vie du changement (démarrer un changement, fermer un changement, …) qui mène au système de demande de modification.

J’aime y penser de cette façon:

Le contrôle de révision est ce qu’ils font .

Le contrôle de la source est ce pour quoi je les utilise.

🙂

Il y a trois synonymes décrivant presque la même chose:

  1. Contrôle de révision Traite des révisions (revues de documents / artefacts et versions ultérieures de document / artefact) ou de nombres (en tant que concept abstrait de révision ).
  2. Contrôle de la source . Traite les fichiers texte (source) et non les fichiers binarys . Cette différence joue un grand rôle dans la mesure où il est beaucoup plus facile d’effectuer des comparaisons et d’obtenir des différences entre les fichiers texte . Il existe toute une gamme d’outils de base liés au contrôle des sources: diff , diff3 , patch , etc. Cet ensemble d’outils peut être étendu pour former une solution de contrôle de code source. Exemple de solution: RCS.
  3. Gestion du code source Traite des opérations plus complexes sur le code source: stockez-le dans un repository avec la possibilité de créer des twigs distinctes. On suppose également que les twigs peuvent être merged . Le tagging est une autre partie de la gestion du code source. Un problème avec la gestion du code source est qu’il a l’abréviation SCM. Cette abréviation est utilisée pour décrire un ensemble plus large d’activités – Gestion de la configuration logicielle . Il y a beaucoup de confusion car la gestion du code source est un sous-ensemble de la gestion de la configuration logicielle qui traite également des activités telles que la gestion des builds, la gestion du déploiement , l’continuous integration , la gestion des dépendances , la gestion des versions , etc.
  4. Contrôle de version Il est utilisé comme substitution pour un terme tel que la gestion du code source afin d’éviter toute ambiguïté. Il intègre les deux concepts de contrôle de révision et de contrôle de source, ce qui en fait un concept presque identique. Actuellement, les deux termes contrôle de révision, contrôle de code source sont remplacés par le contrôle de version en tenant compte de la large gamme d’outils (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS, etc.) contrôle de la source simultanément.

Image illustrant plus clairement la distinction entre tous ces concepts:

entrer la description de l'image ici

  • Le système de contrôle de version (VCS) est le terme le plus couramment utilisé
  • La gestion du code source (SCM) est utilisée dans git, mais elle est en quelque sorte inventée et peut être confondue avec la gestion de la configuration logicielle qui est déjà utilisée dans l’indussortinge du logiciel et ce n’est pas la même chose.

La terminologie utilisée n’est pas très précise. Il existe un article décrivant les cinq dimensions pertinentes. Les outils de gestion de données pour le développement de logiciels ne tendent pas à prendre en charge plus de trois d’entre eux de manière cohérente en même temps. Si vous voulez supporter tous les cinq, vous devez décrire un processus de développement:

  • Version (sémantique: modification)
  • Voir (sémantique: équivalence, dérivation)
  • Hiérarchie (sémantique: se compose de)
  • Statut (sémantique: approbation, accessibilité)
  • Variante (sémantique: variations de produit)

Peter van den Hamer et Kees Lepoeter (1996) Gestion des données de conception: les cinq dimensions des frameworks CAO, de la gestion de la configuration et de la gestion des données produits, compte rendu de l’IEEE, vol. 84, n ° 1, janvier 1996

Certains systèmes (comme SVN) ont un terme de révision qui représente un nombre associé à un ensemble spécifique de versions de tous les fichiers du référentiel. Dans un tel système, la révision ( révision SVN ) signifie essentiellement la version ( version des sources ). Sinon , le contrôle de révision et le contrôle de version sont les mêmes termes.

Il n’y a pas un nom “correct”, les quatre noms communs sont:

  • Système de contrôle de version
  • Système de contrôle de révision
  • Système de contrôle de source
  • Système de gestion de code source

un autre nom est: contrôle de version

Sur la base des tags utilisés sur ce site, “contrôle de source” est le plus populaire (ce qui est tout à fait normal puisque ce site concerne la programmation):

  • contrôle de source (633 tags)
  • contrôle de version (587)
  • contrôle de révision (31)

MIL-STD 973 Décrit la gestion de la configuration.

La gestion de la configuration logicielle est identique.

Voir le CMMI pour une explication agréable de SCM / CM.

Les systèmes dont vous parlez sont des systèmes de contrôle de version. Ils version des choses.

L’ancien SCCS était un système de contrôle de code source.

Les systèmes de contrôle de code source maintiennent l’historique des révisions.

Disons que vous changez un fichier de la révision

1.1, 1.2, 1.3.

Au 1.3, nous publions “Awesome Edition” de notre produit.

1.3 est une révision AwesomeEdition est une version.

Dans les systèmes comme CVS, les révisions se produisent sous forme de changements de numérotation et de balises. La numérotation des révisions du référentiel de types SVN confond les clients gouvernementaux qui attendent un comportement de type MIL-STD.

Le grand avantage des normes en matière de gestion du changement est qu’il ya beaucoup de choix.

Si la préséance historique est quelque chose à suivre, le terme devrait être Contrôle du code source – voir http://en.wikipedia.org/wiki/Source_Code_Control_System

Alors, que recherchez-vous exactement maintenant?

Je ne pense pas qu’il y ait un bon terme. Les deux termes, ainsi que certains autres déjà mentionnés dans d’autres réponses sont utilisés essentiellement pour la même chose.

Les personnes à qui vous parlez le connectent à un sens légèrement différent, même en utilisant le même mot – et elles peuvent signifier vraiment la même chose, même si vous utilisez un autre mot.

Là encore, le vocabulaire utilisé autour de ces choses peut également être différent (ou attaché à différentes significations) en rond autour de différentes implémentations logicielles de ce concept.

Tout en écrivant cela, il me semble que c’est un phénomène très naturel – dans d’autres domaines, vous avez aussi plusieurs mots pour le même sens – alors que d’autres soutiendraient qu’il y avait de légères différences, d’autres diraient que ces différences existe vraiment ou ne vaut pas la peine d’y penser. Et il n’est jamais garanti que lorsque deux personnes utilisent exactement le même mot, elles signifient exactement la même chose.

J’ai ajouté un commentaire, mais je pense que cela peut également donner lieu à une réponse. J’ai un sharepoint vue un peu différent des autres commentaires déjà exprimés.

En général, SCM (Software Configuration Management) ou (Source Code Management – terme dérivé), il est facile à comprendre car il est utilisé comme un terme générique qui inclut à la fois le contrôle des révisions et d’autres techniques comme la gestion de base. Voir http://en.wikipedia.org/wiki/Software_configuration_management . En général, les outils SCM modernes, allant de CVS à Git, incluent ces deux techniques et de nombreuses autres fonctionnalités utiles telles que le contrôle des permissions, la gestion des droits, l’audit de sécurité, la personnalisation du stream SCM (ClearCase), le suivi des problèmes. logiciel, etc … Je pense que la liste est ouverte car tout ce qui concerne le changement de logiciel et la gestion peut entrer ici.

La principale confusion vient donc de la compréhension de la différence entre le contrôle de révision, le contrôle de version et éventuellement le contrôle de source. Tout d’abord, tous les termes qui incluent “source” sont tous des termes dérivés, ce qui signifie que certaines personnes sont gênées par tous ces termes génériques (gestion de la configuration, c’est quoi?) ne vous souciez pas des autres cas d’utilisation; ce qui est juste

Concernant le contrôle de révision par rapport au contrôle de version, je pense que le terme correct (dans le contexte d’outils tels que SVN, Git) est Revision Control. À mon avis, avec le terme Revision Control, l’accent est mis sur la gestion des modifications (en plus de la gestion des versions) des fichiers de code source.

En théorie, quelqu’un pourrait écrire un logiciel permettant le suivi et la gestion de fichiers binarys sans diff binary ni prise en charge de la fusion, et appellerait ce système de contrôle de version. Cependant, dans le cas d’outils comme SVN, Git permet en outre de gérer les modifications apscopes aux fichiers: diffing, fusing et, dans le cas de Git, le fameux rebasing.

En conclusion, le contrôle de révision inclut le contrôle de version et est plus approprié pour nommer des outils tels que CVS, SVN, Git; tandis que le contrôle de source est un terme dérivé et devrait être évité si l’on souhaite nommer un aspect de SCM spécifique.

 SCM > Revision Control > Version Control