phdru.name / Russian / Software / VersionControl

cvs2.html

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

Работая над проектом, вы извлекаете из репозитория копию исходников командой checkout. Таких локальных копий может быть сколько угодно. По мере работы над кодом вы кладёте изменённый код в репозиторий командой commit. Сервер CVS хранит изменения в формате diff. Вы можете забрать изменения других участников проекта (или перенести свои собственные изменения в другую локальную копию) командой update.

Главные достоинство систем контроля версий - они автоматизируют процесс синхронизации между участниками. Команда update не просто копирует изменения с сервера в локальную копию - иначе она затрёт ваши локальные изменения. Update извлекает указанный diff, и накладывает его на вашу локальную копию файлов. В большинстве случаев такой патч накладывается успешно. Бывает, однако, что 2 программиста работали над одним куском кода, и при попытке сделать update возникает конфликт - патч не удаётся однозначно наложить. CVS помечает такие конфликты в коде, и их надо решать руками, и делать commit исправленной версии.

Остальные подробности прочтёте в man cvs и доках.

Большим недостатком CVS является отсутствие команд rename и move. Для исправления этого (и других) недостатков был изобретён SVN, но я его пока не использую. Сыроват он ещё, да и потребностей особых нет. Кроме того, большинство проектов, над которыми я работаю используют CVS - sourceforge.net, включая Python; Postgres; Zope; Quixote. Лишь SQLObject перешёл на SVN, и то недавно.

Arch отличается от других отсутствием центрального сервера. Каждая локальная копия одновременно является репозиторием, которые могут синхронизироваться между собой.


Эта страница http://phdru.name/Russian/Software/VersionControl/cvs2.html была сгенерирована 08.06.2014 в 20:51:48 из шаблона CheetahTemplate cvs2.tmpl; Некоторые права зарезервированы. Вы можете узнать о технических аспектах этого сайта.