web-dev-qa-db-ja.com

SVNスイッチエラー-同じリポジトリではありません

私は最近SVNサーバーを移動しましたが、現在、作業コピーをコンピューターから新しいサーバーに再配置しようとしています。しかし、私は最も奇妙なエラーを取得します。私がやります :

svn switch http://99.99.99.new/svn/company/project/trunk/web

しかし、私は得る

svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'

移動はダンプとインポートで行われました...そしてリポジトリのルートは http://99.99.99.new/svn/company/project にあります

何が間違っているのか考えがありますか?どうもありがとう

76
Gabriel Solomon

使用してみてください

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

コメントでSporinoが指摘したように、Subversion 1.7以降、別のrelocateコマンドがあります。

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web
130
Steef

また、TortoiseSVNには「Relocate」オプションがあり、これらのような状況で使用する必要があります(「Switch」オプションの代わりに)。

23

SVNの再配置を行うための私の最善の方法は次のとおりです。

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository

このようにして、svn infoコマンドでは、間違いを犯さないように注意してください。これはよくある間違いの1つです。

すべてが正しい場合、新しい場所の認証詳細が異なる場合は、その詳細が表示されます。

コマンドを発行した後、URLパラメーターを見て、変更が適用されていることを確認してください。

svn info

再配置後、作業コピーを更新して、すべてが正常であることを確認します。

svn update

私の2c ..

7
GabrieleV

relocateコマンドにswitchコマンドラインパラメーターを使用します。

svn switch documentation

管理者がリポジトリの「ベースの場所」を変更する場合があります。つまり、リポジトリのコンテンツは変更されませんが、リポジトリのルートに到達するために使用されるメインURLは変更されます。たとえば、ホスト名が変更されたり、URLスキーマが変更されたり、リポジトリに至るパスのみが変更されたりする場合があります。新しい作業コピーをチェックアウトするのではなく、svn switchコマンドを使用して、作業コピー内のすべてのURLの先頭を「書き換える」ことができます。 --relocateコマンドを使用して、置換を行います。ファイルの内容は変更されず、リポジトリにも接続されません。これは、s/OldRoot/NewRoot /を実行する作業コピーの.svn /ディレクトリでPerlスクリプトを実行するのに似ています。

4
crashmstr

--relocateオプションを使用する必要があります。

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web

詳細については、 svnbook を参照してください。

1
Peter Parker