Subversion: могу ли я проверить, изменить, а затем сделать его веткой?


Я сделал проверку из моего багажника в местный DIR и сделал много местных изменений там. Теперь я не хочу возвращать его обратно в ствол, но я бы предпочел сделать ветку из этой локальной версии. Это возможно?

могу ли я просто скопировать ствол в ветку, а затем cd DIR и svn switch в филиал?

обновление: Спасибо за ответы, все заработало! Подведем итоги шаги:

  • cd DIR
  • svn copy . new-branch-URL
  • svn switch new-branch-URL .

(обратите внимание на точки)

4 76

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 репозитория.

Да, вы можете сделать это командная строка SVN а также tortoiseSVN.

вы должны указать свой SVN workingcopy как src и ваш новый филиал в качестве места назначения

svn copy <file/path/to/working/copy> <URL/TO/REPOSITORY/BRANCH>