Контроль версий и контроль версий? - PullRequest
57 голосов
/ 29 июня 2009

Какое правильное имя для системы, в которой хранятся версии исходного кода, такие как SVN или TFS?

Я всегда называл это контролем исходного кода, но в таких местах, как Википедия, это называется контролем версий?

Чтобы на таких более сложных сайтах, как этот, был тег для обоих?

Ответы [ 12 ]

77 голосов
/ 29 июня 2009
  • Revision Control - это более общий термин, используемый для инструментов контроля версий, но также и для других инструментов (Word, OpenOffice, ...). Ссылка на версию.

  • Контроль версий предлагает контроль версий с ветвлением и объединением, которые не всегда доступны во всех инструментах изменений (Word не является источником контроля, но предлагают функции контроля версий)

  • Контроль версий является более общим термином, чем Контроль источников, в том смысле, что он управляет версией чего-либо (источников или двоичных файлов, или любого типа документов)

Примечание: SCM означает «Управление исходным кодом», но также и «Управление программным кодом», чтобы отразить ту же идею (управляются не только «источники»). Плюс SCM вводит понятие зависимостей между группами файлов.
И оно также может включать в себя понятие жизненного цикла изменения (начать изменение, закрыть изменение, ...), что приводит к системе запроса на изменение.

13 голосов
/ 19 января 2012

Существует три синонима, описывающих почти одно и то же:

  1. Ревизионный контроль . Работает с ревизиями (обзоры документов / артефактов и последующие версии документа / артефактов) или номерами (как абстракция ревизии концепции).
  2. Контроль источника . Имеет дело с текстовыми (исходными) файлами, а не двоичными . Это различие играет большую роль, поскольку намного проще выполнить сравнение и получить разницу между текстовыми файлами. Существует целый ряд базовых инструментов, связанных с контролем источников: diff, diff3, patch и т. Д. Этот набор инструментов может быть расширен для формирования решения по управлению исходным кодом. Примером такого решения является RCS.
  3. Исходный код управления . Имеет дело с более сложными операциями над исходным кодом: сохранение его в repository с возможностью создания отдельных branches. Также предполагается, что ветви могут быть merged. Другая часть управления исходным кодом - tagging. Одна проблема с управлением исходным кодом состоит в том, что оно имеет аббревиатуру SCM. Эта аббревиатура используется для описания более широкого набора действий - Управление конфигурацией программного обеспечения . Существует большая путаница, потому что управление исходным кодом является подмножеством управления конфигурацией программного обеспечения , которое также занимается такими действиями, как управление сборкой , управление развертыванием , непрерывная интеграция , управление зависимостями , управление выпуском и т. Д.
  4. Контроль версий . Он используется в качестве замены для такого термина, как управление исходным кодом , чтобы избежать двусмысленности. Он включает в себя обе концепции контроль версий и контроль версий , что позволяет описать почти одну и ту же концепцию. В настоящее время оба термина контроль версий , контроль версий заменены на контроль версий как более подходящие с учетом широкого спектра инструментов (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS и т. Д.), Которые решают обе задачи: контроль версий и контроль источника одновременно.

Изображение, чтобы проиллюстрировать более четкое различие между всеми этими понятиями:

enter image description here

13 голосов
/ 05 июля 2009

Мне нравится думать об этом так:

Ревизионный контроль это то, что они делают .

Контроль источника - это то, для чего Я использую их.

: -)

5 голосов
/ 29 июня 2009
  • Система контроля версий (VCS) - наиболее часто используемый термин
  • Управление исходным кодом (SCM) используется в git, но это своего рода изобретение и его можно спутать с Software Configuration Management , который уже используется в индустрии программного обеспечения, и не то же самое.
4 голосов
/ 07 июля 2009

Используемая терминология не очень точна. Есть статья, описывающая пять соответствующих измерений. Инструменты управления данными для разработки программного обеспечения обычно не поддерживают одновременно более трех из них. Если вы хотите поддержать все пять, вы должны описать процесс разработки:

  • Версия (семантика: модификация)
  • Представление (семантика: эквивалентность, деривация)
  • Иерархия (семантика: состоит из)
  • Статус (семантика: утверждение, доступность)
  • Вариант (семантика: варианты продукта)

Peter van den Hamer и Kees Lepoeter (1996) Управление данными проектирования: пять измерений платформ CAD, управление конфигурацией и управление данными о продуктах, Материалы IEEE, Vol. 84, № 1, январь 1996 года

4 голосов
/ 29 июня 2009

Некоторые системы (например, SVN) имеют термин revision , который обозначает число, связанное с определенным набором версий всех файлов в хранилище. В таких системах revision ( SVN revision ) по существу означает версия ( исходная версия ). В противном случае контроль версий и контроль версий являются одинаковыми терминами.

3 голосов
/ 29 июня 2009

Нет «правильного» имени, четыре общих имени:

  • Система контроля версий
  • Ревизионная система управления
  • Система управления источником
  • Система управления исходным кодом
2 голосов
/ 29 июня 2009

другое имя: контроль версий

Исходя из тегов, используемых на этом сайте, «контроль версий» является наиболее популярным (что вполне нормально, поскольку этот сайт посвящен программированию):

  • контроль источника (633 тега)
  • контроль версий (587)
  • контроль версий (31)
1 голос
/ 08 июля 2009

MIL-STD 973 Описывает управление конфигурацией.

Управление конфигурацией программного обеспечения выполняется точно так же.

См. CMMI для хорошего объяснения SCM / CM.

Системы, о которых вы говорите, являются системами контроля версий. Они версии вещей.

Старая SCCS была системой контроля исходного кода.

Системы управления исходным кодом поддерживают историю изменений.

Скажем, вы изменили файл с ревизии

1,1, 1,2, 1,3.

В версии 1.3 мы выпускаем «Awesome Edition» нашего продукта.

1.3 является ревизией AwesomeEdition - это версия.

В таких системах, как CVS, изменения происходят по мере изменения нумерации, а теги обозначают версии. Нумерация версий репозитория SVN сбивает с толку государственных заказчиков, ожидающих MIL-STD такое поведение.

Самое замечательное в стандартах управления изменениями заключается в том, что есть так много выбора.

0 голосов
/ 23 октября 2014

Я добавил комментарий, но думаю, что он также может претендовать на ответ.У меня немного другое мнение по сравнению с некоторыми другими уже высказанными комментариями.

В общем SCM (управление конфигурацией программного обеспечения) или (термин, основанный на управлении исходным кодом) - это легко понять, поскольку он используется в качестве зонтикатермин, который включает в себя как контроль ревизии, так и другие методы, такие как базовое управление.См. http://en.wikipedia.org/wiki/Software_configuration_management. В целом современные инструменты SCM, которые варьируются от CVS до Git, включают в себя оба эти метода и многие другие полезные функции, такие как: контроль разрешений, управление правами, аудит безопасности, позволяют настраивать поток SCM (ClearCase), интегрироватьс системой сборки и программным обеспечением для отслеживания проблем и т. д. Я думаю, что список открыт, потому что сюда может войти все, что связано с изменениями и управлением программ.

Таким образом, основная путаница заключается в понимании разницы между Revision Control,Контроль версий и, возможно, Контроль версий.Прежде всего, все термины, которые включают в себя «исходный код», являются производными терминами. Я имею в виду, что некоторые люди обеспокоены всеми этими общими терминами (управление конфигурацией - что это?) И настаивают на том, что они работают с исходным кодом в частности, и они нене заботиться о других случаях использования;что справедливо.

Относительно контроля версий против контроля версий Я думаю, что правильным термином (в контексте таких инструментов, как SVN, Git) является контроль версий.На мой взгляд, с термином Revision Control основной упор делается на управление изменением (помимо управления версиями) (не только) файлов исходного кода, в то время как с контролем версий упор делается на управление только версиями файлов.

Теоретически кто-то может написать программный продукт, который позволяет отслеживать и управлять двоичными файлами без поддержки двоичных различий и слияния, и будет называть эту систему контроля версий.Однако в случае таких инструментов, как SVN, Git, они дополнительно позволяют управлять изменениями в файлах: различие, слияние и, в случае Git, знаменитая перебазировка.

Итак, в заключение Revision Control включает в себя контроль версий и больше подходит для таких инструментов именования, как CVS, SVN, Git;в то время как Контроль источника является производным термином, и его следует избегать, если вы хотите назвать конкретный аспект SCM.

SCM > Revision Control > Version Control
...