Система одновременных версий

редактировать
Система одновременных версий
Разработчик (и) Команда CVS
Первоначальный выпуск19 ноября 1990 г.; 29 лет назад (1990-11-19)
Стабильный выпуск 1.11.23 / 8 мая 2008 г.; 12 лет назад (2008-05-08)
Предварительный выпуск 1.12.13 / 26 июля 2006 г.; 14 лет назад (26.07.2006)
Репозиторий Отредактируйте это в Wikidata
Написано наC
Операционной системе Unix-подобный, Windows
Тип Контроль версий
Лицензия Стандартная общественная лицензия GNU
Веб-сайтsavannah.nongnu.org / projects / cvs

Система одновременных версий (CVS, также известная как Система одновременного управления версиями ) - это система управления версиями изначально разработан Диком Грюном в июле 1986 года.

CVS работает как интерфейс к RCS, более ранней системе, которая работает на отдельных файлах. Он расширяет возможности RCS, добавляя поддержку отслеживания изменений на уровне репозитория и модель клиент-сервер.

Выпущено на условиях Стандартной общественной лицензии GNU, CVS бесплатно программное обеспечение.

Содержание
  • 1 Дизайн
  • 2 Эксплуатация
  • 3 Переносимость
  • 4 История
  • 5 Принятие и последователи
  • 6 См. также
  • 7 Примечания
  • 8 Ссылки
  • 9 Внешние ссылки
Дизайн

CVS работает как внешний интерфейс - Система контроля версий (RCS), более старая система контроля версий, которая управляет отдельными файлами, но не целые проекты. Он расширяет RCS, добавляя поддержку отслеживания изменений на уровне репозитория и модель клиент-сервер. Файлы отслеживаются с использованием того же формата истории, что и в RCS, со скрытым каталогом , содержащим соответствующий файл истории для каждого файла в репозитории.

CVS использует дельта-сжатие для эффективного хранения разных версий одного и того же файла. Это хорошо работает с большими текстовыми файлами с небольшими изменениями от одной версии к другой. Обычно это относится к файлам исходного кода. С другой стороны, когда CVS приказывают сохранить файл как двоичный, он сохранит каждую отдельную версию на сервере. Хранение файлов в виде двоичных файлов важно для предотвращения повреждения двоичных файлов.

CVS исключает символические ссылки, потому что, когда они хранятся в системе контроля версий, они могут представлять угрозу безопасности. Например, символическая ссылка на конфиденциальный файл может храниться в репозитории, что делает конфиденциальный файл доступным, даже если он не зарегистрирован. Вместо символических ссылок, скрипты, требующие определенных привилегий и сознательного вмешательства для выполнения, могут быть проверены в CVS.

Операция

CVS помечает отдельный проект (набор связанных файлов), которым она управляет, как модуль. Сервер CVS хранит модули, которыми он управляет, в своем репозитории. Программисты приобретают копии модулей при оформлении заказа. Извлеченные файлы служат в качестве рабочей копии, песочницы или рабочей области. Изменения в рабочей копии отражаются в репозитории путем фиксации их. Обновить - значит получить или объединить изменения в репозитории с рабочей копией.

CVS использует архитектуру клиент-сервер : сервер хранит текущую версию (и) проекта и его историю, а клиенты подключаются к серверу по порядку чтобы «проверить» полную копию проекта, поработайте над этой копией, а затем «отметьте» свои изменения. Серверы CVS могут разрешить «анонимный доступ для чтения», при котором клиенты могут проверять и сравнивать версии с пустым или простым опубликованным паролем (например, «anoncvs»); только для регистрации изменений в этих сценариях требуется личная учетная запись и пароль. Несколько разработчиков могут работать над одним и тем же проектом одновременно, каждый из них редактирует файлы в своей «рабочей копии» проекта и отправляет (или регистрирует) свои модификации на сервер. Во избежание конфликтов сервер принимает только изменения, внесенные в самую последнюю версию файла. Поэтому ожидается, что разработчики будут поддерживать свою рабочую копию в актуальном состоянии, регулярно внося изменения, внесенные другими людьми. Эта задача в основном выполняется автоматически клиентом CVS, требуя ручного вмешательства только тогда, когда возникает конфликт редактирования между зафиксированной модификацией и еще не отмеченной локальной версией файла. Клиенты также могут использовать команду «обновить», чтобы обновить свои локальные копии до последней версии на сервере. Клиенты также могут сравнивать версии, запрашивать полную историю изменений или просматривать исторический снимок проекта (например: на основе заданной даты). Если операция проверки прошла успешно, номера версий всех задействованных файлов автоматически увеличиваются, и сервер записывает предоставленную пользователем строку описания, дату и имя автора в свои файлы log. CVS также может запускать внешние, указанные пользователем сценарии обработки журналов после каждой фиксации. Эти сценарии устанавливаются записью в файле CVS loginfo, который может запускать уведомление по электронной почте или преобразовывать данные журнала в веб-формат.

CVS также может поддерживать разные «ветки» проекта. Например, выпущенная версия программного проекта может образовывать одну ветвь, используемую для исправления ошибок, а версия, находящаяся в стадии разработки, с существенными изменениями и новыми функциями, может образовывать отдельную ветку. CVS предполагает, что большая часть работы выполняется в магистрали и что ветки, как правило, должны быть краткосрочными или историческими. При правильном использовании ветвями легко управлять, а операции ветвлений - эффективными и быстрыми.

Переносимость

Серверное программное обеспечение обычно работает на Unix (хотя, по крайней мере, Сервер CVSNT также поддерживает различные варианты Microsoft Windows ), тогда как клиенты CVS могут работать на любой основной платформе операционной системы.

История

Я создал CVS, чтобы иметь возможность сотрудничать со своими учениками, Эриком Баальбергеном и Маартеном Вааге, над компилятором C ACK (Amsterdam Compiler Kit ). У нас троих были совершенно разные графики (один ученик был постоянным работником с 9 до 5, другой - нерегулярным, и я мог работать над проектом только по вечерам). Их проект работал с июля 1984 года по август 1985 года. Изначально CVS назывался cmt по той очевидной причине, что он позволял нам фиксировать версии независимо.

Grune публично опубликовал код 23 июня 1986 года.

код, который в конечном итоге превратился в текущую версию CVS, был начат Брайаном Берлинером в апреле 1989 года, а позже был внесен Джеффом Полком и многими другими участниками. Брайан Берлинер написал статью, представляющую свои улучшения в программе CVS, в которой описывается, как инструмент был расширен и использован внутри Prisma, сторонним разработчиком, работающим над ядром SunOS, и был выпущен для пользы сообщества под лицензией GPL. 19 ноября 1990 г. CVS версия 1.0 была представлена ​​Free Software Foundation для разработки и распространения.

Последняя версия была выпущена 8 мая 2008 г.

Принятие. и преемники

В мире программного обеспечения с открытым исходным кодом система параллельных версий (CVS) долгое время была предпочтительным инструментом для контроля версий. И это правильно. CVS сама по себе является бесплатным программным обеспечением, и ее неограничительный способ работы и поддержка сетевых операций, которые позволяют десяткам географически разбросанных программистов обмениваться своей работой, очень хорошо вписываются в совместную природу мира открытого исходного кода. CVS и ее полухаотическая модель разработки стали краеугольными камнями открытого исходного кода.

Со временем разработчики создали новые системы контроля версий на основе CVS, чтобы добавлять функции, изменять операционную модель и повышать производительность разработчиков. Проекты замены CVS включают CVSNT и Subversion.

См. Также
  • Портал бесплатного программного обеспечения с открытым исходным кодом
Примечания
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 09:00:43
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте