2009-06-29 7 views
56

Quel est le nom correct pour un système qui stocke des versions de code source, comme SVN ou TFS?Contrôle de la source par rapport au contrôle de révision?

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

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

+0

Désolé pour votre prime: ma réponse (faite avant que la prime) soit auto-sélectionnée (voir aussi http://meta.stackexchange.com/questions/4508). Laissez un commentaire sur ma réponse si vous voulez que je le détaille sur un sujet particulier. – VonC

+0

"Désolé": seulement parce que ma réponse a été faite * avant * la prime et qu'elle a seulement été mise à jour en raison de l'augmentation de la visibilité due à la prime. Mais il semble ne pas avoir attiré * de nouvelles réponses * vous * avez peut-être jugé mieux (ou il l'avait fait, mais vous n'étiez pas là au moment de l'expiration de la prime pour le sélectionner: maintenant vous ne pouvez pas sélectionner d'autres réponses sur cette question) – VonC

Répondre

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

  • Control Source offre un contrôle de révision avec branchement et la fusion qui ne sont pas toujours disponibles dans tous les outils de révision (Word est pas un contrôle de code source, mais offre des fonctionnalités de contrôle de révision)

  • Control version est terme plus général que le contrôle Source en ce qu'elle gère version de quoi que ce soit (sources ou binaires, ou tout type de documents)

note: SCM signifie code source de gestion, mais aussi pour Software Code Management, pour refléter la même idée (pas seulement les "sources" sont gérées).
Plus SCM introduit la notion de dépendances entre les groupes de fichiers.
Et il peut également inclure la notion de changement de cycle de vie (commencer une modification, fermer une modification, ...) qui conduit à changer le système de demande.

+17

Aussi SCM signifie Software Configuration Management. – user16120

+0

Il devrait également y avoir une distinction entre "l'outil", ou un logiciel tel que git, hg, et svn; et la «pratique», qui a une politique dans une entreprise, et peut être «gestion de code source», ou «gestion de configuration de logiciel». – maxwellb

+2

pourquoi êtes-vous désolé de la prime? le fait que vous ayez été voté par un facteur de 10 devrait indiquer que vous avez la meilleure réponse. le système d'auto-acceptation fonctionne correctement. –

2

un autre nom est: version contrôle

Basé sur les Tags utilisés sur ce site, « contrôle de code source » est le plus populaire (ce qui est tout à fait normal, puisque ce site est sur la programmation):

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

Je souhaite que les tags ont fusionné ou quelque chose. Avoir plusieurs balises signifiant la même chose rend les choses plus difficiles à chercher. –

2

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 la source
  • Source système de gestion de code
3

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

+0

Pas vraiment, ils ne sont pas les mêmes termes. Dans le contrôle de révision, l'accent est mis sur la gestion du changement (en plus de la version) tandis que dans le contrôle de version, l'accent est mis sur la gestion des versions qui pourraient ne pas inclure la fusion, etc. – arpadf

5
  • Version Control System (VCS) est le plus utilisé terme
  • code source de gestion (SCM) est utilisé dans git, mais il est en quelque sorte inventé et peut être confondu avec gestion de configuration logicielle qui est déjà utilisé dans l'industrie du logiciel et ce n'est pas la même chose.
+1

* SCM * est également synonyme de gestion de configuration logicielle, gestion des changements d'approvisionnement. Il peut donc y avoir un peu plus d'ambiguïté en utilisant l'abréviation * SCM * puis * VCS * et * RCS *. – altern

+0

"et ce n'est pas la même chose" ... est-ce que vous voulez élaborer? – Gregor

+0

Une partie de la gestion de la configuration logicielle est par exemple le suivi des défauts. Un outil VCS ne le fait pas. – FelipeC

13

Je me plais à penser de cette façon:

contrôle de révision est ce ils faire.

Contrôle de la source est ce que je les utilise pour.

:-)

4

La terminologie utilisée est pas très précis. Il y a un article décrivant les cinq dimensions pertinentes. Les outils de gestion de données pour le développement de logiciels n'ont généralement pas tendance à en prendre en charge plus de trois simultanément. Si vous voulez soutenir les cinq que vous devez décrire un procesus de développement:

  • Version (sémantique: modification)
  • View (sémantique: équivalence, dérivation)
  • Hiérarchie (sémantique: Comporte)
  • Statut (sémantique: approbation, accessibilité)
  • Variant (sémantique: variations de produits)

Peter van den Hamer et Kees Lepo eter (1996) Gestion des données de conception: les cinq dimensions des cadres de CAO, de la gestion de la configuration et de la gestion des données de produit, Actes de l'IEEE, vol. 84, No. 1, janvier 1996

1

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

La configuration du logiciel est effectuée exactement de la même manière.

Voir le CMMI pour une bonne explication de SCM/CM.

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

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.

Dites que vous avez modifié un fichier de révision

1.1, 1.2, 1.3.

À 1.3 nous publions "Awesome Edition" de notre produit.

1.3 est une révision AwesomeEdition est une version.

Dans les systèmes tels que CVS, les révisions se produisent en tant que changements de numérotation et les balises marquent les versions. numérotation de révision de dépôt de type SVN confond les clients du gouvernement qui s'attendent à un comportement de type MIL-STD .

Ce qu'il y a de bien avec les normes de gestion du changement, c'est qu'il y en a tellement.

0

Alors, que cherchez-vous exactement maintenant?

Je ne pense pas qu'il y ait un seul bon terme. Les deux termes, ainsi que d'autres déjà mentionnés dans d'autres réponses sont utilisés pour essentiellement la même chose. Les personnes à qui vous parlez le connectez à une signification légèrement différente même si vous utilisez le même mot - et elles peuvent signifier exactement la même chose, même en utilisant un autre mot.

Ensuite, le vocabulaire utilisé autour de ces choses peut également être différent (ou attaché à des significations différentes) dans des cercles autour des différentes implémentations logicielles de ce concept. En écrivant ceci, il me vient à l'esprit que c'est un phénomène très naturel - dans d'autres domaines, vous avez aussi plusieurs mots qui ont la même signification - alors que certains diront qu'il y a de légères différences, d'autres diront ces différences n'existent pas vraiment ou ne valent pas la peine d'être étudiées. Et il n'est jamais garanti que lorsque deux personnes utilisent le même mot, elles signifient exactement la même chose.

11

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

  1. contrôle de révision. Traite des révisions (révisions de document/artefacts et des versions ultérieures de document/artefact) ou numéros (comme une abstraction de révision concept).
  2. Commande de source. Traite avec texte fichiers (source), pas binaire. Cette différence joue un grand rôle tant qu'il est beaucoup plus facile d'effectuer la comparaison et obtenir la différence entre les fichiers texte. Il existe toute une gamme d'outils de base liés au contrôle de source: diff, diff3, patch, etc. Cet ensemble d'outils peut être étendu pour former une solution de contrôle de source. Exemple d'une telle solution est RCS.
  3. Gestion du code source. Traite des opérations plus complexes sur le code source: en le stockant dans un repository avec la possibilité de créer un branches séparé. Il est également supposé que les branches peuvent être merged. Une autre partie de la gestion du code source est tagging. Un problème avec la gestion de 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 configuration logicielle.Il y a beaucoup de confusion parce que la gestion de code source est un sous-ensemble de gestion de configuration logicielle qui traite également des activités telles que construire la gestion, la gestion du déploiement, intégration continue, la gestion des dépendances, la gestion des versions, etc.
  4. Contrôle de version. Il est utilisé comme substitution pour le terme gestion du code source afin d'éviter toute ambiguïté. Il incorpore les deux concepts de contrôle de révision et le contrôle de source ce qui en fait presque le même concept. À l'heure actuelle, les deux termes révision contrôle, le contrôle source sont substitués en prenant plus approprié avec le contrôle version compte de la vaste gamme d'outils (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS, etc.) qui permettent de résoudre les deux tâches de contrôle de révision et contrôle de la source simultanément.

image pour illustrer plus clairement la distinction entre tous ces concepts:

enter image description here

0

J'ai ajouté un commentaire, mais je pense qu'il peut se qualifier pour une réponse aussi bien. J'ai un point de vue légèrement différent des autres commentaires déjà exprimés. En général, SCM (Software Configuration Management) ou (terme dérivé de la gestion de code source) est facile à comprendre car il est utilisé comme un terme générique qui inclut à la fois le contrôle de révision 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 qui vont de CVS à Git incluent ces deux techniques et bien d'autres fonctionnalités utiles: contrôle des autorisations, gestion des droits, audit de sécurité, personnalisation du flux SCM (ClearCase), intégration avec le système de construction et suivi des problèmes logiciel, etc ... Je pense que la liste est ouverte parce que tout ce qui touche au changement de logiciel et à la gestion peut entrer ici. La principale confusion provient 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, je veux dire que certaines personnes sont dérangés par tous ces termes génériques (gestion de la configuration - qu'est-ce que c'est?) Et insistent sur le fait qu'ils travaillent ne se soucient pas d'autres cas d'utilisation; ce qui est juste.

En ce qui concerne le contrôle de révision par rapport au contrôle de version, je pense que le terme correct (dans le contexte d'outils comme SVN, Git) est le contrôle de révision. À mon avis, avec le terme Revision Control, l'accent est mis sur la gestion du changement (outre la gestion des versions) des fichiers de code source (et pas seulement), tandis que Version Control privilégie la gestion des versions des fichiers. En théorie, quelqu'un pourrait écrire un logiciel qui permet le suivi et la gestion des fichiers binaires sans différentiel binaire et un support de fusion et appellera ce système de contrôle de version. Cependant dans le cas d'outils comme SVN, Git ceux-ci permettent en plus de gérer les changements aux fichiers: différer, fusionner et dans le cas de Git le rebasing célèbre.Donc, en conclusion, le contrôle de révision inclut le contrôle de version et est plus approprié dans les outils de nommage comme CVS, SVN, Git; alors que le contrôle de source est un terme dérivé et devrait être évité si l'on veut nommer un aspect SCM spécifique.

SCM > Revision Control > Version Control 
Questions connexes