Subversion: могу ли я проверить, изменить, а затем сделать его веткой?
Я сделал проверку из моего багажника в местный DIR и сделал много местных изменений там. Теперь я не хочу возвращать его обратно в ствол, но я бы предпочел сделать ветку из этой локальной версии. Это возможно?
могу ли я просто скопировать ствол в ветку, а затем cd DIR
и svn switch
в филиал?
обновление: Спасибо за ответы, все заработало! Подведем итоги шаги:
cd DIR
svn copy . new-branch-URL
svn switch new-branch-URL .
(обратите внимание на точки)
4 ответа:
согласно его командной строке help 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 достаточно:
- щелкните правой кнопкой мыши на верхнем каталоге, который я хочу разветвить
- В "to URL" выберите директорию филиала в вашем репозитории
- во фрейме "Создать копию в репозитории из: "выберите" рабочая копия"
готово :)
Это так же, как копирование локальной версии в указанный URL репозитория.