CVS или Concurrent Versions System е централизирана система за контрол на версиите, позволяваща на няколко разработчици да работят върху един и същ проект. CVS е свободен софтуер.

Concurrent Versions System
Информация
РазработчикГрупа разработчици
Последна версия1.11.23
Програмен езикC
Операционна системаPOSIX, Windows
Вид софтуерУправление на версии
ЛицензGPL
Уебсайтwww.nongnu.org/cvs

Възможности редактиране

CVS използва архитектура клиент-сървър – сървърът съхранява текущата версия на проекта и историята на промените, а клиентът се свързва с него за да свали пълно копие на проекта и ако се налага по-късно да добави своите промени. Обикновено клиентът и сървърът са свързани с мрежа, но могат да се изпълняват на един и същи компютър. Сървърният софтуер обикновено работи под Unix, а клиенти съществуват за всички по-големи платформи.

Няколко разработчици могат да работят едновременно върху проекта, като редактират различни копия и добавят на сървъра направените от тях промени. За да се избегнат проблеми с едновременни редакции на един и същи файл, сървърът приема промени само спрямо последната версия. Затова от разработчиците се очаква да поддържат кода си обновен, за което обикновено се грижи CVS клиентът, който автоматично сваля чуждите промени. Ръчна намеса се налага само в случай на конфликт с вече добавената на сървъра версия и локалните промени на файла, които все още не са изпратени.

Ако операцията по качване на промените на сървъра е успешна, версията на всички променени файлове автоматично се увеличава. Освен това CVS сървърът записва в своите логове и метаданни – поле с резюме на редакцията, дата и име на автора. CVS може също да изпълнява зададени от потребителя външни скриптове, които да се изпълняват и да обработват метаданните след всяко съхраняване на промените от страна на клиента. Така могат да бъдат изпращани съобщения по електронна поща при промени.

Клиентите могат също да сравняват различни версии или да изтеглят пълната история на проекта за да видят кой кога е добавил част от даден файл. Възможно е и да се свали специфична версия на файла или точно копие на проекта от дадена дата. Много проекти с отворен код осигуряват публичен достъп до хранилищата си, при който е възможно само четене.

CVS може да поддържа различни „клонове“ на разработка. Това означава, че проектът се разделя на две копия, които се променят независимо едно от друго. Тази възможност често се използва при софтуерните проекти – единият клон е само за поправяне на проблеми, а в другия се добавят всички нови възможности на софтуерния продукт.

CVS използва делта компресия за ефективно съхраняване на файловете. Това означава, че не се съхраняват пълните версии на файловете, а само разликите между тях. Това означава, че системата е по-ефективна при файлове с много редове (обикновено текстови).

История редактиране

Разработката на CVS започва от група скриптове за командната обвивка, създадени от холандския програмист Дик Груне през юли 1986.[1] Целта на тези скриптове е да боравят с по-стара система за контрол на версиите – Revision Control System (RCS), която позволява съхраняване само на отделни файлове, но не и на проекти. В края на 1990 се обособява като отделен софтуерен продукт под GPL лиценз.

Така нареченото „разклоняване“, присъстващо в повечето съвременни системи за контрол на версиите, се появява първо в CVS.[2]

CVS се използва все по-малко за сметка на по-съвременния SVN, проектиран като „по-добър CVS“, при който са премахнати някои от ограниченията на предшественика му.[3] Множество големи софтуерни проекти са изоставили CVS за сметка на децентрализирани системи за разработка на софтуер като Git, Mercurial и Bazaar.[4]

Източници редактиране

  1. ximbiot.com[неработеща препратка]
  2. www.fnal.gov, архив на оригинала от 24 септември 2015, https://web.archive.org/web/20150924014049/http://www.fnal.gov/docs/products/cvs/cvs-paper.ps, посетен на 7 април 2010 
  3. Apache Subversion FAQ // subversion.apache.org. Посетен на 26 януари 2022.
  4. DVCS adoption is soaring among open source projects | Ars Technica // arstechnica.com. Посетен на 26 януари 2022.

Външни препратки редактиране