Система контроля версий (RCS) - это система контроля ранних версий ( VCS ). Это набор команд UNIX, которые позволяют нескольким пользователям разрабатывать и поддерживать программный код или документы. С помощью RCS пользователи могут вносить свои собственные изменения в документ, фиксировать изменения и объединять их. RCS изначально разрабатывался для программ, но также полезен для текстовых документов или файлов конфигурации, которые часто пересматриваются. [3]
Автор (ы) оригинала | Уолтер Ф. Тихи |
---|---|
Разработчики) | Проект GNU |
Первый выпуск | 1982 |
Стабильный выпуск | 5.10.0 [1] / 20 октября 2020 г . |
Репозиторий | |
Написано в | C |
Операционная система | Unix-подобный , V [2] |
Тип | Управление версиями |
Лицензия | Стандартная общественная лицензия GNU |
Веб-сайт | www |
История
Разработка
RCS был впервые выпущен в 1982 году [3] от Walter F. Tichy в Университете Пердью . Это был инструмент, альтернативный популярной в то время системе управления исходным кодом (SCCS), которая была почти первым программным средством управления версиями (разработанным в 1972 году первыми разработчиками Unix). [4] RCS в настоящее время поддерживается проектом GNU . [5]
Новшеством в RCS является использование обратных дельт . Вместо того, чтобы хранить каждую ревизию в файле, как это делает SCCS с чередующимися дельтами , RCS сохраняет набор инструкций редактирования для возврата к более ранней версии файла. Тичи утверждает, что в большинстве случаев это быстрее, потому что чаще используются последние версии. [3]
Юридические и лицензионные
Изначально (до версии 3, которая распространялась в 4.3BSD) его лицензия запрещала распространение без письменного разрешения Уолтера Тичи: [6]
Copyright (C) 1982 Уолтер Ф. Тихи [...] Все права защищены. Никакая часть этого программного обеспечения не может быть продана или распространена в любой форме и любыми средствами без предварительного письменного разрешения автора.
Read_me файл сопровождается несколько версий RCS , которая дополнительно ограниченного распространения, например, в 4.3BSD-Reno . [7]
Ок. В 1989 году лицензия RCS была изменена на что-то похожее на современные лицензии BSD , как видно из комментариев в исходном коде. [8]
Распространение и использование в исходной и двоичной формах разрешено при условии, что указанное выше уведомление об авторских правах и этот абзац дублируются во всех таких формах и что любая документация, рекламные материалы и другие материалы, связанные с таким распространением и использованием, подтверждают, что программное обеспечение было разработано Walter Тихи.
RCS 4.3, выпущенный 26 июля 1990 г., распространялся «по лицензии Free Software Foundation » в соответствии с условиями GPL . [9]
Поведение
Режим работы
RCS работает только с отдельными файлами. У него нет возможности работать со всем проектом, поэтому он не поддерживает атомарные коммиты, затрагивающие несколько файлов. Хотя он обеспечивает ветвление для отдельных файлов, синтаксис версии громоздок. Вместо того, чтобы использовать ветки, многие команды просто используют встроенный механизм блокировки и работают с одной головной веткой. [3]
Применение
RCS вращается вокруг использования «групп ревизий» или наборов файлов, которые были зарегистрированы с помощью команд co
(checkout) и ci
(check-in). По умолчанию зарегистрированный файл удаляется и заменяется файлом «, v» (так что foo.rb при возврате становится foo.rb, v), который затем может быть извлечен любым, имеющим доступ к группе ревизий. Файлы RCS (опять же, файлы с расширением ", v") отражают основной файл с дополнительными метаданными в его первых строках. После регистрации RCS сохраняет изменения в древовидной структуре, за которой можно следить, чтобы при необходимости пользователь мог вернуть файл к предыдущей форме. [3]
Преимущества
- Простая структура и удобство работы [10]
- Сохранение ревизий не зависит от центрального репозитория [10]
Недостатки
Связанные инструменты и преемники
RCS - инструмент первого поколения
RCS все еще используется в некоторых проектах, но его дальнейшее использование далеко от более современных инструментов, таких как Git . [4]
SCCS (выпущенный в 1972 году) и DSEE (который считается предшественником Atria ClearCase ) - два других относительно хорошо известных новаторских программных инструмента VCS. Эти инструменты обычно считаются первым поколением VCS как автоматизированные программные инструменты.
Второе поколение
После VCS первого поколения такие инструменты, как CVS и Subversion , которые имеют локально централизованный репозиторий, могут рассматриваться как VCS второго поколения. В частности, CVS (Concurrent Versions System) была разработана на основе структуры RCS, улучшив масштабируемость инструмента для более крупных групп, а позже превратилась в PRCS как более простой инструмент , похожий на CVS.
Примерно к 2006 году Subversion считалась самым популярным и широко используемым инструментом VCS из этого поколения и заполнила важные слабые места CVS. Позже SVK был разработан с целью использования функции удаленного доступа, но все же основа его конструкции была очень похожа на ее предшественников. [4]
Третье поколение
По мере улучшения возможности подключения к Интернету и более широкого распространения географически распределенной разработки программного обеспечения появились инструменты, которые не полагались на общий центральный репозиторий проектов. Это позволяет пользователям поддерживать независимые репозитории (или ответвления ) проекта и сообщать о версиях через наборы изменений . BitKeeper , Git , Monotone , darcs , Mercurial и bzr - вот некоторые примеры систем контроля версий третьего поколения. [4]
Рекомендации
- ^ "Доступна GNU RCS 5.10.0" ; строка имени автора: Thien-Thi Nguyen; дата публикации: 20 октября 2020 г .; получено: 24 октября 2020.
- ^ Справочное руководство V-System 6.0
- ^ a b c d e Тихи, Уолтер (1982). «Разработка, внедрение и оценка системы контроля версий» . ICSE '82 Труды 6-й Международной конференции по программной инженерии : 58–67 . Проверено 12 июня 2012 года .
- ^ а б в г Раймонд, Эрик. «Понимание систем контроля версий (ПРОЕКТ)» . www.catb.org . Проверено 13 февраля 2017 года .
- ^ «RCS» . Проект GNU . Фонд свободного программного обеспечения. 22 января 2015 . Проверено 27 июня 2015 года .
- ^ «4.3BSD - /usr/src/new/rcs/src/rcsdiff.c» . Документация уголка ретро-вычислений Уолтера. 19 мая 1986 . Проверено 15 ноября 2014 года .
- ^ "CSRG / cd2 / 4.3reno / usr / src / contrib / rcs / src / READ_ME" . 27 февраля 1989 г.
- ^ "CSRG / cd2 / 4.3reno / usr / src / contrib / rcs / src / rcs.c" . 15 августа 1989 г.
- ^ Файл README RCS 4.3.
- ^ а б в «Концепции контроля версий - Система контроля версий (RCS), Система одновременных версий (CVS) и Subversion» . IT PASSION - «Блог ИТ-профессионалов» . 10 декабря 2008 . Проверено 20 февраля 2017 года .
- ^ Стейнберг, Франк. «Системы контроля версий (RCS, CVS, Subversion, Git)» . Технический университет Брауншвейга . Проверено 20 февраля 2017 года .
Заметки
- Уолтер Ф. Тихи: RCS - система контроля версий . В: Программное обеспечение - практика и опыт . Июль 1985 г. Том 15. Номер 7. Страницы 637-654. Ссылки на статью на CiteSeer альтернативная ссылка на статью
дальнейшее чтение
- Дон Болинджер, Тан Бронсон, Применение RCS и SCCS - от управления версиями к управлению проектами . О'Рейли, 1995.
- Уолтер Ф. Тихи, RCS - система контроля версий , 1985
- Пол Хайнлайн, RCS HOWTO , 2004 г.
Внешние ссылки
- Официальный веб-сайт
- Оригинальный RCS в Purdue
- : RCS программа управления файлами - OpenBSD Общие команды Руководство