web-dev-qa-db-ja.com

SVNブランチの名前を変更し、既存のサンドボックスの参照を更新する方法は?

SVNブランチの名前を変更する必要があったため、次のようにしました。

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

これまでのところ、非常に良い-ブランチの名前が変更されました。

問題は、このブランチから既存のサンドボックスがチェックアウトされており、更新しようとするとこのエラーが発生することです。

$ svn update 
 svn:ターゲットパス '/ branches/oldbranch'は存在しません

かなり自明のエラー。簡単な検索の後、私は解決策を見つけたと思った: ブランチの名前変更後のSVN作業コピーの再配置

問題は、そのコマンドを発行しようとすると別のエラーが発生することです。

$ svn switch --relocate https:// server/repos/myrepo/branches/oldbranch\
 https:// server/repos/myrepo/branches/newbranch 
 svn:変更できるのは、 URLのリポジトリ部分

私が見る限り、Sander Rijkenと同じ方法で--relocateコマンドを使用しています。このエラーが発生する理由はありますか?

44
Lee Netherton

ただやる

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

作業コピー内から。

52
khmarbaise

相対パスを変更するには、必須を使用して純粋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.

つまり、oldbranchのWCのルートで、現在newbranchになっているので、使用する必要があります

svn switch ^/branches/newbranch

3
Lazy Badger

EclipseでSVNブランチの名前を単に変更したい場合、最も簡単なのはSVN Repository Exploring Perspectiveに移動し、ブランチを右クリックして-> Refactor-> Renameを選択することです。

3
Leopold Gault