2009-06-29 7 views
56

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

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

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

+0

Извините за свою щедрость: мой ответ (сделанный перед щедростью) был автоматически отобран (см. Также http://meta.stackexchange.com/questions/4508). Оставьте комментарий на мой ответ, если вы хотите, чтобы я подробно описал его по любой конкретной теме. – VonC

+0

«Извините»: только потому, что мой ответ был сделан * до * щедрости и был только одобрен из-за увеличения видимости из-за щедрости. Но, похоже, он не привлек * новых * ответов * у вас может быть судья лучше (или он был, но вас не было во время истечения срока действия щедрости, чтобы выбрать его: теперь вы не можете выбрать какой-либо другой ответ когда-либо по этому вопросу) – VonC

ответ

73
  • управление Revision является более общим термином, используемым для инструментов источника управления, но и для других инструментов (Word, OpenOffice, ...). Он ссылается на версию.

  • управления Источник предлагает контроль версий с ветвление и слияние, которые не всегда доступны во всех инструментах пересмотра (Word не Control Source, но предложение пересмотра функции управления)

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

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

+17

Также SCM означает Software Configuration Management. – user16120

+0

Должно быть также различие между «инструментом» или программным обеспечением, таким как git, hg и svn; и «практика», которая имеет политику в компании и может быть «управление исходным кодом» или «управление конфигурацией программного обеспечения». – maxwellb

+2

Почему вы сожалеете о щедрости? тот факт, что вы голосовали в 10 раз, должен указать, что у вас есть лучший ответ. система автоматического приема работает нормально. –

2

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

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

    управления
  • источником (633)
  • метки
  • версия управления (587)
  • контроля версий (31)
+2

Я хочу, чтобы теги были слиты или что-то в этом роде. Наличие нескольких тегов, что означает то же самое, затрудняет поиск. –

2

Там не "правильное" имя, четыре общих названия:

  • система контроля версий
  • система контроля версий
  • система управления Источник
  • Исходный код системы управления кодом
3

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

+0

Не совсем, они не совпадают. В управлении версиями акцент делается на управлении изменением (помимо версии), в то время как в управлении версиями акцент (очевидно) делается на управлении версиями, которые могут не включать слияние, ветвление и т. Д. – arpadf

5
  • Система контроля версий (VCS) является наиболее часто используемым термином
  • Источник управления Код (SCM) используется в мерзавец, но это своего рода изобретены и могут быть спутаны с управления конфигурацией программного обеспечения, который уже используется в индустрии программного обеспечения, и это не одно и то же.
+1

* SCM * также означает Software Configuration Management, Управление изменениями поставок. Таким образом, может быть немного больше двусмысленности, используя аббревиатуру * SCM *, затем * VCS * и * RCS *. – altern

+0

"и это не одно и то же" ... ухаживать за подробностями? – Gregor

+0

Одним из компонентов управления конфигурацией программного обеспечения является, например, отслеживание дефектов. Инструмент VCS этого не делает. – FelipeC

13

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

управления Revision что они сделать.

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

:-)

4

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

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

Питер ван ден Хамер и Kees лепо eter (1996) Управление данными проектирования: пять измерений каркасов САПР, управление конфигурацией и управление данными о продуктах, материалы IEEE, том. 84, № 1, январь 1996 года

1

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

Итак, что именно вы искали?

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

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

С другой стороны, словарь, используемый вокруг этих вещей, также может быть различным (или привязан к различным значениям) в кругах вокруг различных программных реализаций этой концепции.

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

11

Есть три синонимы, описывающие почти то же самое:

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

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

enter image description here

0

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

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

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

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

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

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

SCM > Revision Control > Version Control 
Смежные вопросы