Исходный контроль против контроля версий?
Какое правильное имя для системы, в которой хранятся версии исходного кода, например SVN или TFS?
Я всегда называл это контролем источника, но такие места, как Википедия, называет его контролем версий?
Чтобы сделать более сложные сайты, подобные этому, имеют тег для обоих?
Ответы
Ответ 1
-
Контроль версий - это более общий термин, используемый для инструментов управления источником, а также для других инструментов (Word, OpenOffice,...). Он ссылается на версию.
-
Источник управления предлагает управление версиями с ветвлением и слиянием, которые не всегда доступны во всех инструментах ревизии (Word не является элементом управления источником, но предлагает функции контроля версий)
-
Контроль версий - это более общий термин, чем Source Control, поскольку он управляет версией чего-либо (источников или двоичных файлов или любых документов)
Примечание. SCM означает управление исходными кодами, но также и управление программным кодом, чтобы отразить ту же идею (управляются не только "источники" ).
Плюс SCM вводит понятие зависимостей между группой файлов.
И он также может включать понятие жизненного цикла изменения (начать изменение, закрыть изменение,...), что приводит к системе запросов на изменение.
Ответ 2
Мне нравится думать об этом так:
Контроль версий - это то, что они делают.
Контроль источника - это то, для чего я их использую.
: -)
Ответ 3
Существует три синонима, описывающих почти одно и то же:
- Контроль версий. Предложения с ревизиями (обзоры документов/артефактов и последующие версии документа/артефакта) или номера (как абстракция концепции пересмотра).
- Контроль источника. Сделки с текстовыми (исходными) файлами, а не бинарные. Это различие играет большую роль, если гораздо проще выполнять сравнение и получать разницу между текстовыми файлами. Существует целый ряд базовых инструментов, связанных с контролем источника:
diff
, diff3
, patch
и т.д. Этот набор инструментов можно расширить, чтобы сформировать решение для управления версиями. Примером такого решения является RCS.
- Управление исходным кодом. Сделки с более сложными операциями над исходным кодом: сохранение его в
repository
с возможностью создания отдельного branches
. Предполагается также, что ветки могут быть merged
. Другая часть управления исходным кодом - tagging
. Одна из проблем с управлением исходным кодом заключается в том, что он имеет аббревиатуру SCM. Эта аббревиатура используется для описания более широкого набора действий - Software Configuration Management. Там много путаницы, потому что управление исходным кодом - это подмножество управления конфигурацией программного обеспечения, которое также занимается такими функциями, как управление конструкцией, управление развертыванием, непрерывная интеграция, управление зависимостями, управление выпуском и т.д.
- Контроль версий. Он используется в качестве замены для такого термина, как управление исходным кодом, чтобы избежать двусмысленности. Он включает в себя обе концепции контроля версий и управления версиями, что позволяет описать почти ту же концепцию. В настоящее время контроль над версиями обоих элементов управления версиями, управление версиями заменяется контролем версий, что более уместно с учетом широкого спектра инструментов (CVS, SVN, Git, Mercurial, ClearCase, Perforce, VSS и т.д.), Которые решают обе задачи пересмотра управления и источника одновременно.
Рисунок, чтобы проиллюстрировать более четкое различие между всеми этими понятиями:
Ответ 4
- Система управления версиями (VCS) - наиболее часто используемый термин
- Управление исходными кодами (SCM) используется в git, но это своего рода изобретенное и может быть путано с Software Configuration Management, которое уже используется в программном обеспечении промышленности, и это не одно и то же.
Ответ 5
Используемая терминология не очень точная. Существует статья, описывающая пять соответствующих измерений. Инструменты управления данными для разработки программного обеспечения не имеют тенденцию поддерживать более трех из них последовательно в одно и то же время. Если вы хотите поддержать все пять, вам необходимо описать процесс разработки:
- Версия (семантика: модификация)
- Вид (семантика: эквивалентность, вывод)
- Иерархия (семантика: состоит из)
- Статус (семантика: утверждение, доступность)
- Вариант (семантика: варианты продукта)
Peter van den Hamer и Kees Lepoeter (1996) Управление данными проектирования: пять измерений каркасов САПР, управление конфигурациями и управление данными о продуктах, материалы IEEE, том. 84, № 1, январь 1996 года.
Ответ 6
Некоторые системы (например, SVN) имеют терминовую версию, которая обозначает число, связанное с определенным набором версий всех файлов в репозитории. В таких системах ревизия (версия SVN) по существу означает версию (исходную версию). В противном случае контроль версий и контроль версий будут одинаковыми.
Ответ 7
другое имя: управление версиями
На основе тегов, используемых на этом сайте, "источник управления" является самым популярным (что вполне нормально, так как этот сайт посвящен программированию):
- контроль источника (теги 633)
- контроль версий (587)
- контроль версий (31)
Ответ 8
Нет "правильного" имени, четыре общих имени:
- Система контроля версий
- Система контроля версий
- Система управления версиями
- Система управления исходным кодом
Ответ 9
MIL-STD 973 Описывает управление конфигурацией.
Управление конфигурацией программного обеспечения выполняется точно так же.
См. CMMI для приятного объяснения SCM/CM.
Системы, о которых вы говорите, являются системами контроля версий.
Они версии вещи.
Старый SCCS был исходной системой управления кодом.
Системы контроля исходного кода сохраняют историю изменений.
Предположим, вы изменили файл из версии
1.1, 1.2, 1.3.
В 1.3 мы выпустили "Awesome Edition" нашего продукта.
1.3 является пересмотром
AwesomeEdition - это версия.
В таких системах, как CVS, изменения происходят как изменения нумерации, а теги отмечают версии.
Нумерация версий репозитория типа SVN смущает государственных клиентов, которые ожидают MIL-STD
вид поведения.
Самое замечательное в стандартах в области управления изменениями заключается в том, что их так много на выбор.
Ответ 10
Если историческое преимущество - это что-то, что должно быть, термин должен быть Source Code Control - см. http://en.wikipedia.org/wiki/Source_Code_Control_System
Ответ 11
Итак, что именно вы ищете сейчас?
Я не думаю, что есть один правильный термин. Оба термина, а также некоторые другие, упомянутые в других ответах, используются в основном для одного и того же.
Лица, с которыми вы разговариваете, будут связывать его с немного другим значением даже при использовании для него одного и того же слова - и они могут означать абсолютно то же самое, даже при использовании другого слова.
Затем снова словарь, используемый вокруг этих вещей, также может быть различным (или привязан к различным значениям) в кругах вокруг различных программных реализаций этой концепции.
При написании этого мне приходит в голову, что это очень естественное явление - в других областях у вас также есть несколько слов, стоящих в основном для одного и того же значения, в то время как некоторые утверждают, что на самом деле есть небольшие различия, некоторые другие сказали бы, что эти различия действительно не существуют или не стоит думать. И он никогда не гарантировал, что, когда два человека используют одно и то же слово, они действительно означают то же самое.
Ответ 12
Я добавил комментарий, но я думаю, что он может претендовать на ответ. У меня немного другое представление, но некоторые другие комментарии уже высказаны.
В общем, SCM (Управление конфигурацией программного обеспечения) или (Исходный код - производный термин) легко понять, поскольку он используется в качестве зонтичного термина, который включает как контроль над версиями, так и другие методы, такие как управление базовыми данными. См. http://en.wikipedia.org/wiki/Software_configuration_management. В общем, современные инструменты SCM, которые варьируются от CVS до Git, включают в себя оба этих метода и многие другие полезные функции, такие как: контроль разрешений, управление правами, аудит безопасности, возможность настройки потока SCM (ClearCase), интеграции со сборкой и программное обеспечение для отслеживания проблем и т.д. Я думаю, что список открыт, потому что все, что связано с изменением программного обеспечения и управлением, может войти здесь.
Таким образом, основная путаница возникает из понимания разницы между контролем версий, контролем версий и, возможно, контролем версий. Прежде всего, все термины, которые включают "источник", являются все производными терминами, я имею в виду, что некоторые люди обеспокоены всеми этими родовыми терминами (управление конфигурацией - что это?) И настаивают на том, что они работают с исходным кодом, в частности, и они надеются не заботьтесь о других случаях использования; это справедливая точка.
Что касается Revision Control vs Version Control, я считаю, что правильным термином (в контексте таких инструментов, как SVN, Git) является Revision Control. На мой взгляд, с термином Revision Control основное внимание уделяется управлению изменениями (помимо управления версиями) файлов (не только) исходного кода, в то время как при управлении версиями основное внимание уделяется управлению только версиями файлов.
В теории кто-то может написать часть программного обеспечения, которая позволяет отслеживать и управлять двоичными файлами без поддержки двоичного разложения и объединения и вызывать эту систему управления версиями. Однако в случае таких инструментов, как SVN, Git, они дополнительно позволяют управлять изменениями в файлах: различать, слияния и в случае Git знаменитой перезагрузки.
Итак, в заключение Revision Control включает в себя управление версиями и более подходит для таких инструментов, как CVS, SVN, Git; в то время как Source Control является производным термином и его следует избегать, если вы хотите назвать конкретный аспект SCM.
SCM > Revision Control > Version Control