Содержание
Каким бы протоколом вы ни пользовались для доступа к своим хранилищам, вам в любом случае потребуется создать хотя бы одно хранилище. Это может быть сделано как при помощи клиента Subversion для командной строки, так и при помощи TortoiseSVN.
Если вы ещё не создали хранилище Subversion, самое время этим заняться.
Создайте пустую папку с именем SVN, (например, D:\SVN\
), которая будет корневой папкой для всех ваших хранилищ.
Создайте другую папку MyNewRepository
внутри D:\SVN\
.
Откройте командную строку (или окно эмуляции DOS), перейдите в D:\SVN\
и введите
svnadmin create --fs-type fsfs MyNewRepository
Теперь у вас есть новое хранилище, расположенное в D:\SVN\MyNewRepository
.
Откройте Проводник Windows
Создайте новую папку и назовите её, например, SVNRepository
Щёлкните правой кнопкой мыши на вновь созданной папке, и выберите → .
Хранилище будет создано внутри новой папки. Не редактируйте эти файлы самостоятельно!!!. В случае возникновения ошибок убедитесь, что папка пуста и доступна для записи.
У вас также спросят хотите ли вы создать структуру директорий внутри хранилища. О возможных вариантах структуры узнайте в «Организация данных в хранилище».
Когда TortoiseSVN создаст хранилище, то установит значок специальной папки, что вы могли проще определить локальные хранилища. Если вы создаете хранилище с помощью официального клиента командной строки, то этот значок папки не назначается.
Мы также рекомендуем, чтобы вы совсем не использовали доступ при помощи file://
, кроме как в целях локального тестирования. Использование сервера более безопасно и более надёжно для всех задач, за исключением применения его для единственного разработчика.
Для доступа к вашему локальному хранилищу вам необходим путь к этой папке. Только запомните, что Subversion принимает все пути к хранилищам в виде file:///C:/хранилищеSVN/
. Обратите внимание, что везде используется прямая косая черта.
Для доступа к хранилищу, находящемуся на сетевом разделяемом ресурсе, вы можете подключить этот ресурс как диск, или использовать путь UNC. Пути UNC используются в виде file://ИмяСервера/путь/к/хранилищу
. Обратите внимание, что здесь только 2 ведуших прямых косых черты.
В версиях SVN до 1.2, пути UNC имели более запутанный вид file:///\ИмяСервера/путь/к/хранилищу
. Хотя этот вид до сих пор поддерживается, использовать его не рекомендуется.
Хотя в теории возможно разместить хранилище FSFS на сетевом ресурсе и предоставить доступ нескольким пользователям посредством протокола file://
, это то, что совершенно точно не рекомендуется делать. На самом деле мы весьма не одобряем этого, и не поддерживаем такое использование по разным причинам:
Во-первых, вы предоставляете каждому пользователю непосредственный доступ на запись к хранилищу, и любой пользователь может случайно удалить всё хранилище или испортить его каким-либо другим способом.
Во-вторых,не все протоколы разделения файлов по сети поддерживают блокировку, необходимую для Subversion, и вы можете обнаружить, что ваше хранилище повреждено. Возможно, это случится не сразу, но когда-нибудь два пользователя попробуют получить доступ к хранилищу в одно и то же время.
В-третьих, разрешения на доступ к файлам должны указываться очень аккуратно. Возможно, вам удастся это сделать на "родном" разделяемом ресурсе Windows, но на SAMBA это особенно трудно.
Если кто-то установит более свежую версию клиента, который обновит формат хранилища, то все остальные не смогут получить доступ к хранилищу пока также не обновят клиента до новой верии.
Доступ при помощи file://
предназначен только для локального использования одним пользователем, особенно для тестирования и отладки. Когда вы желаете предоставить общий доступ к хранилищу, вам на самом деле необходимо настроить подходящий сервер, и это не настолько сложно, как вы можете подумать. Прочтите «Доступ к хранилищу» для рекомендаций по выбору и настройке сервера.
Перед тем, как импортировать данные в хранилище, сначала подумайте о том, как вы хотите их организовать данные. Если использовать один из рекомендуемых способов, в дальнейшем вам будет намного легче.
Есть несколько стандартных рекомендуемых способов организации хранилища. Большинство людей создают папку trunk
, в которой ведётся «основная линия» разработки, папку branches
, содержащую копии ответвлений, и папку tags
для копий меток. Если хранилище содержит только один проект, тогда их часто создают как папки верхнего уровня:
/trunk /branches /tags
Поскольку эта схема часто используется, то когда вы создаете новое хранилище с помощью TortoiseSVN, вам также будет предложено создать структуру директорий.
Если хранилище содержит несколько проектов, их часто упорядочивают по ответвлениям:
/trunk/paint /trunk/calc /branches/paint /branches/calc /tags/paint /tags/calc
...или по проектам:
/paint/trunk /paint/branches /paint/tags /calc/trunk /calc/branches /calc/tags
Упорядочивание по проектам имеет смысл, если проекты не сильно связаны, и каждый из них извлекается индивидуально. Для связанных проектов, где вы можете пожелать извлекать все проекты за раз, или где все проекты связанны друг с другом в один распространяемый пакет, часто лучшим является упорядочивание по ответвлениям. В этом случае у вас только один ствол для извлечения, и легче видимы взаимосвязи между подпроектами.
В случае принятия подхода, когда /trunk /tags /branches
- папки верхнего уровня, незачем говорить, что для каждого ответвления и метки копируется весь ствол, и в некотором роде эта структура предоставляет наибольшую гибкость.
Для несвязанных проектов вы можете предпочесть использовать раздельные хранилища. Когда вы фиксируете изменения, изменяется номер ревизии для всего хранилища, а не номер ревизии проекта. Когда два несвязанных проекта совместно используют одно хранилище, могут образовываться большие промежутки в номерах ревизий. Проекты Subversion и TortoiseSVN обладают одним адресом сетевого узла, но у них полностью раздельные хранилища, делающие возможной независимую разработку, без путаницы по поводу номеров сборок.
Конечно, вы вольны игнорировать эти обычные схемы. Вы можете реализовать любые виды изменений - всё, что лучше работает для вас или для вашей команды. Помните, что выбранный вами вариант не является чем-то незыблемым. Вы можете реорганизовать хранилище в любое время. Поскольку ответвления и метки - это обычные папки, TortoiseSVN может перемещать или переименовывать их, как вы пожелаете.
Переход с одного способа организации на другой - это вопрос выполнения серии перемещений на сервере. Если вам не нравится, как организованы данные в хранилище, просто переставьте папки.
Итак, если вы пока ещё не создали основную структуру папок в вашем хранилище, это надо сделать сейчас. Есть два способа этого достичь: если вы просто желаете создать структуру /trunk /tags /branches
(/ствол /метки /ответвления), вы можете воспользоваться обозревателем хранилища для создания этих трёх папок (за три отдельных фиксации). Если же вы желаете создать более разветвлённую иерархию, то проще сначала создать структуру папок на диске и импортировать её за одну фиксацию, вот так:
Создайте новую пустую папку на вашем жёстком диске
Создайте желаемую структуру папок верхнего уровня внутри этой папки - но пока не помещайте в них никаких файлов!
Импортируйте эту структуру в хранилище путём правого щелчка на папке и выбора → . В диалоге импорта укажите путь к вашему хранилищу и щелкните ОК. Тем самым вы импортируете вашу временную папку в корень хранилища и создадите основу для организации данных хранилища.
Обратите внимание: сама папка, которую вы импортируете, в хранилище не появляется, только её содержимое. Например, создайте следующую структуру папок:
C:\Temp\New\trunk C:\Temp\New\branches C:\Temp\New\tags
Импортируйте C:\Temp\New
в корень хранилища, который станет выглядеть следующим образом:
/trunk /branches /tags