Когда был изобретен контроль версий?

20

Мне известны многие системы контроля версий: CVS, SVN, TFS и т. Д.

Я гуглил самую первую «систему контроля версий / контроля версий» и видел разные противоречивые ответы.

Когда был изобретен контроль версий? Кто это придумал? Как это называлось?

P.Brian.Mackey
источник
18
Он был изобретен несколько раз, но они продолжали терять исходный код.
Reactgular
4
Это зависит от того, как вы определяете «управление исходным кодом», но IEBUPDTE IBM датируется 1962 годом, и это, возможно, самая ранняя версия VCS.
Росс Паттерсон
2
Если файловые системы управления версиями можно сопоставить с контролем версий, это относится к 1960-м годам.
Mouviciel
@RossPatterson, этот комментарий действительно должен быть ответом.
Джон Р. Штром

Ответы:

14

Вот довольно приличный график основных игроков в виде видео (без звука).

Это говорит о том, что SCCS был первым, с перевесом около 9 лет.

http://i.stack.imgur.com/wcAWD.png

Хотя многое там пропущено, о чем свидетельствует этот блог и полученные комментарии.

прецизионный самописец
источник
7
В оригинальной статье о SCCS не упоминается никаких других систем, и, похоже, указывается, что она должна была придумать саму терминологию. Только из этого источника похоже, что до 1972/73 года система контроля версий отсутствовала.
Мартин Питерс
1
Наименование системы управления исходным кодом «Система управления исходным кодом» действительно свидетельствует о том, что это был первый экземпляр того, что позже станет категорией программного обеспечения.
Инго
@MartijnPieters Rochkind признает CLEAR Брауна в конце статьи и, проще говоря, создавая SCCS на OS / MVT, он не мог не знать об IEBUPDTE.
Росс Паттерсон
@RossPatterson: ни CLEAR, ни IEBUPDTE не являются системами контроля версий. CLEAR относится к идее дельт, в статье прямо говорится, что других сходств нет.
Мартин Питерс
3

В 1981 году я работал на летней работе в Charter Information в Остине, Техас. Ранее это была коммерческая информационная корпорация Woburn MA. Они запустили Xerox Sigma 6, которая была модернизирована до Sigma 7. Они использовали SPUD (обновление исходной программы) для контроля исходного кода. Это было на основе ленты.

Я обычно монтировал «двухсотлетнюю ленту SPUD» и работал над мод-декой для фрагмента кода на этой ленте. Она была названа «двухсотлетняя лента SPUD», потому что она была написана в 1976 году. У них были более старые ленты, что указывало на то, что SPUD вернулся назад, чем в 1976 году.

Будучи студентом в UT Austin (1973-1981), я столкнулся с MODIFY и UPDATE, двумя программами контроля исходного кода от Control Data Corporation для CDC 6600 и более поздних мэйнфреймов. Я не знаю, когда они впервые вышли, но я подозреваю, что они появились вскоре после 6600 года, который (если мне не изменяет память) вышел в конце 1960-х годов.

Я подозреваю, что у IBM было что-то намного лучше, чем у кого-то еще, но я ничего не знаю об истории мэйнфреймов IBM, и мне это нравится.

Джон Р. Штром
источник
Команды CDC MODIFY и UPDATE были утилитами для применения обновлений программного обеспечения, а не для управления изменениями в вашем собственном программном обеспечении, насколько я могу судить. См. Apps.dtic.mil/dtic/tr/fulltext/u2/a208003.pdf , в котором описаны утилиты на странице со страницей 52 (61 в PDF), и computinghistory.org.uk/downloads/39256 , в которой описаны Выпуск программного обеспечения № 4 (PDF № 16) в формате ОБНОВЛЕНИЯ.
Мартейн Питерс
Я считаю, что Xerox SPUDS (дисковая система обновления исходной программы) был похожим пакетом.
Мартейн Питерс
2

Программа IEBUPDTE , изначально созданная для системы IBM OS / 360, датируется 1962 годом, на 10 лет старше, чем SCCS . Его цель - применить набор изменений к набору исходных программ ввода, создав набор модифицированных исходных программ. Весь исходный код обрабатывался либо как «колоды» перфокарт с 80 столбцами , либо как файлы, которые напоминали их. Эти колоды исходных программ имели «порядковые номера» в фиксированном наборе столбцов на каждой строке или карточке ( COBOLуказали их слева, в столбцах 1-6, почти все остальное предполагалось, что они справа в столбцах 73-80). Порядковые номера должны были увеличиваться построчно, но большая часть исходного кода увеличивалась на 10 с, 100 с или 1000 с, чтобы обеспечить место в целочисленном пространстве между двумя строками для последующих вставок.

Типичная управляющая колода IEBUPDTE может выглядеть так:

./ CHANGE NAME=PROG001
         PROGRAM XYZZY                                                  00005000
./ DELETE SEQ1=9000,SEQ2=15000
         DO I=1,10                                                      00026000
./ CHANGE NAME=PROG002
         J=256                                                          00092000
./ ENDUP

который изменил бы два исходных файла, «PROG001» и «PROG002», заменив номер строки «5000» (часто 5-ю строку после практики «число тысячами») и удалив строки с 9000 по 15000 в PROG001 и заменив строку 92000 в PROG002 ,

На самом простом уровне это определение контроля источника. Люди Unix признали бы это как то, что делает патч , но используя явную нумерацию вместо неявной. Распространено было применять наборы контрольных колод к входной программе последовательно и сохранять эти наборы в виде связного файла на диске ( Partitioned Dataset ), который имеет сильное сходство с историями изменений, которые CVS и RCS хранят в своих ,vфайлах. IBM часто поставляла исправления кода, называемые программными временными исправлениями (PTF), в виде больших контрольных колод, которые модифицировали файлы как часть единого связанного набора изменений, который пользователи Subversion и Git могли бы найти знакомым.

Росс Паттерсон
источник
Разве IEBUDTE не является системой обновления программного обеспечения? Это похоже на патч, так что в лучшем случае это компонент системы контроля версий. Насколько я могу судить, нет графика изменений во времени.
Мартин Питерс
Да, IEBUPDTEпохоже на patch.
Росс Паттерсон