Ответ 1
В соответствии с его командной строкой svn copy может копировать из каталога в URL-адрес репозитория. Таким образом, вы должны иметь возможность скопировать рабочую копию в ветку, например:
svn copy working_directory url_to_branch
Я сделал чек из моего сундука в локальный DIR и сделал там множество локальных изменений. Теперь я не хочу передавать его обратно в багажник, но я бы предпочел сделать ветку из этой локальной версии. Возможно ли это?
Можно ли скопировать ствол в ветку, а затем cd DIR
и svn switch
в ветку?
ОБНОВЛЕНИЕ. Спасибо за ответы, это сработало! Чтобы суммировать шаги:
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(обратите внимание на точки)
В соответствии с его командной строкой svn copy может копировать из каталога в URL-адрес репозитория. Таким образом, вы должны иметь возможность скопировать рабочую копию в ветку, например:
svn copy working_directory url_to_branch
Книга SVN (http://svnbook.red-bean.com/en/1.6/svn-book.html#svn.branchmerge.using.create) не рекомендует создавать ветку из локальной рабочей копии.
Хотя также возможно создать ветвь с помощью
svn copy
для дублирования каталога в рабочей копии, этот метод не рекомендуется. На самом деле это может быть довольно медленно! Копирование каталога на клиентской стороне - это операция с линейным временем, в которой она фактически должна дублировать каждый файл и подкаталог в пределах этого рабочего каталога копирования на локальном диске.
Вместо этого сначала создайте ветвь, а затем используйте команду svn switch
, чтобы вы могли зафиксировать свои изменения. Если ваша рабочая копия значительно устарела со стволом, добавьте "@REV" к исходному URL, где "REV" - это ревизия вашей рабочей копии, сообщенная svn info
.
Копирование каталога на сервере, однако, является операцией с постоянным временем, и так, как большинство людей создают ветки.
$ svn copy http://svn.example.com/repos/calc/trunk \
http://svn.example.com/repos/calc/branches/my-calc-branch \
-m "Creating a private branch of /calc/trunk."
В моем клиенте SVN: TortoiseSVN достаточно:
сделано:)
Это подобно копированию локальной версии в указанный URL-адрес репозитория.
Да, вы можете сделать это с помощью командной строки SVN, а также tortoiseSVN.
Вы должны указать свою рабочую копию SVN как src и вашу новую ветку в качестве адресата
svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>
команды.
В TortoiseSVN просто укажите вашу рабочую копию, выберите "Branch/tag" из контекстного меню и выберите "Рабочая копия" в разделе "Создать копию в репозитории из:"
Обратите внимание, что это не очень хорошая идея (по причинам прослеживаемости) создавать теги таким образом, но для ветвей это прекрасно.