Мне известны многие системы контроля версий: CVS, SVN, TFS и т. Д.
Я гуглил самую первую «систему контроля версий / контроля версий» и видел разные противоречивые ответы.
Когда был изобретен контроль версий? Кто это придумал? Как это называлось?
Мне известны многие системы контроля версий: CVS, SVN, TFS и т. Д.
Я гуглил самую первую «систему контроля версий / контроля версий» и видел разные противоречивые ответы.
Когда был изобретен контроль версий? Кто это придумал? Как это называлось?
Ответы:
Вот довольно приличный график основных игроков в виде видео (без звука).
Это говорит о том, что SCCS был первым, с перевесом около 9 лет.
Хотя многое там пропущено, о чем свидетельствует этот блог и полученные комментарии.
В 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, и мне это нравится.
Программа 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 могли бы найти знакомым.
IEBUPDTE
похоже на patch
.