Система контроля версий ( RCS ) — это ранняя реализация системы контроля версий (VCS). Это набор команд UNIX , которые позволяют нескольким пользователям разрабатывать и поддерживать программный код или документы. С помощью RCS пользователи могут вносить собственные изменения в документ, фиксировать изменения и объединять их. RCS изначально был разработан для программ, но также полезен для текстовых документов или файлов конфигурации, которые часто пересматриваются. [4]
RCS был впервые выпущен в 1982 году [4] Уолтером Ф. Тичи в Университете Пердью . Это был инструмент, альтернативный популярной в то время системе контроля исходного кода (SCCS), которая была почти первым программным инструментом контроля версий (разработанным в 1972 году ранними разработчиками Unix). [5] RCS в настоящее время поддерживается проектом GNU Project . [6]
Новшеством в RCS является использование обратных дельт . Вместо того, чтобы хранить каждую редакцию в файле, как это делает SCCS с чередующимися дельтами , RCS хранит набор инструкций редактирования для возврата к более ранней версии файла. Тичи утверждает, что в большинстве случаев это быстрее, поскольку последние версии используются чаще. [4]
Первоначально (до версии 3, которая распространялась в составе 4.3BSD) ее лицензия запрещала распространение без письменного разрешения Вальтера Тихи: [7]
Авторское право (C) 1982 г. принадлежит Уолтеру Ф. Тичи [...] Все права защищены. Никакая часть этого программного обеспечения не может продаваться или распространяться в любой форме и любыми способами без предварительного письменного разрешения автора.
Файл READ_ME сопровождал некоторые версии RCS, которые дополнительно ограничивали распространение, например, в 4.3BSD-Reno . [8]
ок. В 1989 году лицензия RCS была изменена на что-то похожее на современные лицензии BSD , как видно из комментариев в исходном коде. [9]
Распространение и использование в исходной и двоичной форме разрешено при условии, что вышеуказанное уведомление об авторских правах и этот параграф продублированы во всех таких формах и что любая документация, рекламные материалы и другие материалы, связанные с таким распространением и использованием, подтверждают, что программное обеспечение было разработано Walter. Тичи.
RCS 4.3, выпущенная 26 июля 1990 года, распространялась «по лицензии Free Software Foundation » на условиях GPL . [10] [ нужна полная цитата ]
RCS работает только с отдельными файлами. У него нет возможности работать со всем проектом, поэтому он не поддерживает атомарные фиксации , затрагивающие несколько файлов. Хотя он обеспечивает ветвление для отдельных файлов, синтаксис версий громоздкий. Вместо использования ветвей многие команды просто используют встроенный механизм блокировки и работают с одной головной веткой. [4]
RCS основан на использовании «групп редакций» или наборов файлов, которые были возвращены с помощью команд co
(checkout) и ci
(check-in). По умолчанию возвращенный файл удаляется и заменяется файлом «,v» (поэтому при возврате foo.rb становится foo.rb,v), который затем может быть извлечен любым, имеющим доступ к группе ревизий. Файлы RCS (опять же файлы с расширением «,v») отражают основной файл с дополнительными метаданными в первых строках. После регистрации RCS сохраняет изменения в древовидной структуре, за которой можно следить, чтобы пользователь мог при необходимости вернуть файл к предыдущей форме. [4]
Примечания