Категории

CVS

CVS (Concurrent Versions System, „Concurrent Versioning System“) е свободен софтуерен продукт, който принадлежи към категорията на системите за контрол на версиите ( version control system ). Той съхранява историята на промените на определен набор от файлове, обикновено изходния код на софтуер, и улеснява съвместната работа на група хора (често програмисти) по един проект. CVS е популярен в света на софтуера с отворен код. Системата се разпространява под лиценза GNU General Public License.

Някои източници смятат CVS за остаряла система, тъй като CVS има редица недостатъци, а има и по-млади алтернативни системи за контрол на версиите (например Apache Subversion или Git ), които са свободни от повечето недостатъци CVS.

CVS използва архитектура клиент-сървър. Обикновено клиентът и сървърът са свързани чрез локална мрежа или интернет, но могат да работят и на една и съща машина, ако е необходимо да се поддържа историята на версиите на локален проект. Сървърният софтуер обикновено работи с UNIX (въпреки че има сървър за CVS и за Microsoft Windows NT ), докато клиентите на CVS са налични на всички популярни операционни системи.

Сървърът съхранява текущата(ите) версия(и) на проекта и историята на промените в специално хранилище (хранилища), а клиентът се свързва с него, за да получи необходимата му версия или да напише нова. След като получи необходимата версия от сървъра (тази процедура се нарича check-out), клиентът създава локално копие на проекта (или на част от него) – така нареченото работно копие. След като се направят необходимите промени във файловете в работното копие, те се изпращат на сървъра (check-in).

Няколко клиенти могат да работят едновременно с копия на даден проект. Когато те изпратят резултатите, сървърът се опитва да слее техните промени в хранилищата заедно. Ако това не успее, например в случай, че двама клиенти са променили едни и същи редове в даден файл, сървърът няма да приеме промените от последната операция check-in и ще информира клиента за конфликт, който трябва да бъде отстранен ръчно. Ако операцията check-in е завършила успешно, номерата на версиите на всички засегнати файлове се увеличават автоматично, а сървърът записва коментара, датата и името на потребителя в дневника си (data logging ).

Клиентите могат също така да сравняват различни версии на файловете, да изискват пълна история на промените или да извличат исторически образ на проекта за определена дата или по номер на ревизия. Много Open Source- проекти позволяват анонимен достъп за четене, който за първи път е реализиран в OpenBSD. Това означава, че клиентите могат да правят справки и да сравняват версии на файлове без парола; само check-in-операциите, които променят данни в хранилището, изискват парола.

Клиентите могат също така да използват командата „update“, за да синхронизират локално копие на проекта с информацията на сървъра, с което се избягва повторното изтегляне на целия проект.

CVS един проект може да съдържа и различни клонове на проекта. Например стабилната версия на даден проект може да включва един клон (branch), който съдържа само поправки на грешки, докато активната разработка може да се извършва в паралелен клон, който включва значителни подобрения или промени след пускането на стабилната версия.

CVS използва механизма за компресиране на делта, за да съхранява ефективно различни версии на един и същ файл.

Проектите в CVS се съхраняват като модули. Един модул представлява набор от файлове на проекта. Сървърът CVS може да обслужва множество модули; всички модули се съхраняват в хранилище. Локално копие на даден модул, получено чрезклиент CVS, наречен работно копие.

извличане на цял модул от CVS и създаване на работно копие.

Ангажиране на локални промени в хранилището.

Актуализиране на локален проект от CVS.

„Клон“ – независимо направление за промяна на проекта, което може да съдържа няколко последователни версии. „Клонът“ може да се развива паралелно с други клонове. Винаги има един главен клон.

Главен клон.

„Ревизия“: една версия на отделен файл.

„Release“: една версия на целия проект. Терминът „версия“ не се използва изобщо.

Специален етикет, обозначаващ конкретна версия на даден продукт. Желателно е текстът на етикета да бъде възможно най-ясен. Етикетът може да бъде присвоен и на отделен файл, но това няма голям смисъл. С етикет се обозначава набор от файлове с определени ревизии (версии).

Недостатъци CVS

Бележка

Понастоящем активното разработване на системата е преустановено (последната версия е пусната през май 2008 г.) и в изходния код се правят само незначителни променикорекции.

Категории: За разработчици, Системи за управление на версии

Реклама