Jump to content

Система параллельных версий

Система параллельных версий
Разработчик(и) Команда CVS
Первоначальный выпуск 19 ноября 1990 г .; 33 года назад ( 1990-11-19 )
Стабильная версия
1.11.23 [1] / 8 мая 2008 г .; 16 лет назад ( 08.05.2008 )
Предварительный выпуск
1.12.13 [2] / 28 сентября 2005 г .; 18 лет назад ( 28 сентября 2005 г. )
Репозиторий
Написано в С
Операционная система Unix-подобный , Windows
Тип Контроль версий
Лицензия GPL-1.0 или новее [3]
Веб-сайт резюме .нонгну .org

Система параллельных версий ( CVS , или Concurrent Versioning System ) — это система контроля версий, первоначально разработанная Диком Грюном в июле 1986 года. [4]

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

Выпущенная на условиях GNU General Public License , CVS является свободным программным обеспечением .

Дизайн [ править ]

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

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

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

Операция [ править ]

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

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

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

Портативность [ править ]

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

История [ править ]

Грюне вспоминал: [9]

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

Грюн публично опубликовал код 23 июня 1986 года. [10]

Код, который в конечном итоге превратился в текущую версию CVS, был написан Брайаном Берлинером в апреле 1989 года, а позднее в него внесли вклад Джефф Полк и многие другие участники. Брайан Берлинер написал статью, в которой представил свои усовершенствования программы CVS, в которой описывается, как этот инструмент был расширен и использован внутри компании Prisma, сторонним разработчиком, работающим над ядром SunOS, и был выпущен на благо сообщества под лицензией GPL. [11] 19 ноября 1990 года версия CVS 1.0 была передана в Фонд свободного программного обеспечения для разработки и распространения. [12]

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

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

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

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

См. также [ править ]

Примечания [ править ]

  1. ^ Выпущена стабильная версия CVS 1.11.23!
  2. ^ Выпущена версия функции CVS 1.12.13! * Обновление безопасности *
  3. ^ «Содержимое /ccvs/README» .
  4. ^ «CVS — Система параллельных версий v1.12.12.1: Обзор» . Архивировано из оригинала 15 апреля 2012 года . Проверено 9 декабря 2011 года .
  5. Перейти обратно: Перейти обратно: а б Стопак, Якоб (30 ноября 2019 г.). «Эволюция внутреннего устройства системы контроля версий (VCS)» . Проверено 22 сентября 2020 г.
  6. ^ Чарльз Д. Крэнор; Тео де Раадт (1999). «Открытие репозитория исходного кода с помощью анонимного CVS, USENIX 1999» (PDF) . Архивировано (PDF) из оригинала 9 октября 2022 г.
  7. ^ Коллинз-Сассман, Бен; Грег Уорд (сентябрь 2004 г.). «Пользователи Subversion: Re: Производительность (Subversion и CVS)» . пользователи Subversion . Проверено 7 июля 2010 г.
  8. ^ Уэст, Адриан (июль 2004 г.). «Исправление производительности cvs Branchtag» . Архивировано из оригинала 3 августа 2009 г. Проверено 7 июля 2010 г.
  9. ^ «Система параллельных версий CVS» . dickgrune.com .
  10. ^ Дик Грюн (3 июля 1986 г.). «CVS, интерфейс RCS (cvs)» . Группа новостей : mod.sources . Usenet:   [электронная почта защищена] . Проверено 14 сентября 2016 г.
  11. ^ «CVS II: Распараллеливание разработки программного обеспечения — Berliner (ResearchIndex)» . Архивировано из оригинала 9 сентября 2004 года.
  12. ^ «[cvs] Содержимое /ccvs/NEWS» . cvs.savannah.gnu.org .
  13. ^ «Система параллельных версий - Новости: Выпущена стабильная версия CVS 1.11.23! [Саванна]» . savannah.nongnu.org .
  14. ^ Бен Коллинз-Сассман, Контроль версий с помощью Subversion для Subversion 1.1, 2005 г.
  15. ^ «Часто задаваемые вопросы о Subversion: почему существует этот проект?» . Подрывная деятельность . Проверено 21 сентября 2009 г.
  16. ^ «Рассеивание подрывной деятельности» . Бен Коллинз-Сассман. Архивировано из оригинала 18 июля 2011 года . Проверено 30 июня 2010 г.

Ссылки [ править ]

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: d745e5f2f7f612c18fc7fd6711560405__1715316660
URL1:https://arc.ask3.ru/arc/aa/d7/05/d745e5f2f7f612c18fc7fd6711560405.html
Заголовок, (Title) документа по адресу, URL1:
Concurrent Versions System - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)