Как правило, работа с хранилищем Subversion начинается с
создания рабочей копии проекта.
При создании рабочей копии на локальной машине создается копия
хранилища. Эта копия содержит HEAD
(последнюю
правку) хранилища, указанного вами в командной строке:
$ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/subversion.dsw A trunk/svn_check.dsp A trunk/COMMITTERS A trunk/configure.in A trunk/IDEAS … Checked out revision 2499.
Хотя в приведенном примере рабочая копия создается на основе корневого каталога, вы можете легко создать рабочую копию на основе подкаталога любой степени вложенности, указав при создании рабочей копии подкаталог в URL:
$ svn checkout http://svn.collab.net/repos/svn/trunk/doc/book/tools A tools/readme-dblite.html A tools/fo-stylesheet.xsl A tools/svnbook.el A tools/dtd A tools/dtd/dblite.dtd … Checked out revision 2499.
Так как Subversion использует модель «копирование-изменение-слияние» вместо модели «блокирование-изменение-разблокирование» (см. Глава 1, Фундаментальные понятия) вы уже можете начинать вносить изменения в файлы и каталоги своей рабочей копии. Ваша рабочая копия ничем не отличается от любого другого набора файлов на вашей системе. Вы можете редактировать и менять их, перемещать, вы даже можете полностью удалить рабочую копию и забыть о ней.
Несмотря на то, что рабочая копия выглядит «как и любой другой набор файлов на вашей системе» вы должны поставить в известность Subversion, если вы будете что-либо реорганизовывать в рабочей копии. Если вы хотите скопировать или переместить элемент в рабочей копии вы должны использовать команду svn copy или svn move вместо аналогичных команд, предлагаемых операционной системой. Мы поговорим о них позже в этой главе.
Исключение составляют случаи, когда вы готовы зафиксировать новый файл или каталог, либо внести изменения в один из существующих. Для этих операций вы не обязаны дополнительно извещать Subversion-сервер о своих действиях.
Несмотря на то, что вы конечно можете создать рабочую копию, указав только один аргумент в виде URL хранилища, вы можете после URL хранилища указать каталог. Тогда ваша рабочая копия будет находиться в новом каталоге с указанным вами именем. Например:
$ svn checkout http://svn.collab.net/repos/svn/trunk subv A subv/subversion.dsw A subv/svn_check.dsp A subv/COMMITTERS A subv/configure.in A subv/IDEAS … Checked out revision 2499.
Эта команда создаст рабочую копию в каталоге с именем
subv
, вместо каталога trunk
как мы делали раньше.