Как переименовать ветку SVN и обновить ссылки в существующей песочнице? - PullRequest
44 голосов
/ 24 февраля 2011

Мне нужно было переименовать ветку SVN, поэтому я сделал:

$ svn move https://server/repos/myrepo/branches/oldbranch \
    https://server/repos/myrepo/branches/newbranch

Пока все хорошо - ветка переименована.

Проблема в том, что у нас естьПесочницы извлечены из этой ветки, и когда я пытаюсь обновить, я получаю эту ошибку:

$ svn update
svn: Target path '/branches/oldbranch' does not exist

Довольно очевидная ошибка.После быстрого поиска я подумал, что нашел решение: Перемещение рабочей копии SVN после переименования ветви

Проблема в том, что при попытке выполнить эту команду я получаю еще одну ошибку:

$ svn switch --relocate https://server/repos/myrepo/branches/oldbranch \
    https://server/repos/myrepo/branches/newbranch
svn: Relocate can only change the repository part of an URL

Насколько я понимаю, я использую команду --relocate так же, как Сандер Рийкен.Есть идеи, почему я получаю эту ошибку?

Ответы [ 3 ]

52 голосов
/ 24 февраля 2011

Просто сделай

svn switch https://server/repos/myrepo/branches/newbranch

из вашей рабочей копии.

3 голосов
/ 07 июля 2014

Если бы вы просто хотели переименовать ветку SVN в Eclipse, проще всего было бы перейти в Перспектива изучения SVN-репозитория , а затем щелкнуть правой кнопкой мыши на вашей ветке -> Refactor-> Rename

3 голосов
/ 08 января 2013

Для изменения относительного пути вы должны использовать pure svn switch (и в любом случае switch --relocate не рекомендуется), как написано в svn help switch для 1-й формы

switch URL[@PEGREV] [PATH] Обновите рабочую копию, чтобы отразить новый URL в репозитории.

 This behavior is similar to 'svn update', and is the way to
 move a working copy to a branch or tag within the same repository.

Т.е. в корне WC для oldbranch, который теперь newbranch, вы должны использовать

svn switch ^/branches/newbranch

...