20

作業用コピーフォルダーを古い専用のsvnサーバーから、サブフォルダー内に含まれている新しいsvnサーバーに移動しようとしています。次のrelocateコマンドを使用します。

svn switch --relocate https://oldserver/svn/repos https://newserver/some/directory 

私は得る:

svn: 'https://newserver/some/directory ' is not the root of the repository

どちらが正しいか.....しかし、えーと、どうすれば場所を移動できますか?

4

4 に答える 4

14

私が理解している限り、新しいリポジトリに移動するためにsvn switch(の有無にかかわらず)を使用することはできません。--relocateこのように考えてみてください。新しいリポジトリのHEADリビジョンはx、古いリポジトリのリビジョンはyです。では、SVNは作業コピーのベースリビジョンをどのように処理するのでしょうか。

svn help switchそれは次のことに慣れていると言います--relocate

構文の変更のみを反映するように、作業コピーのURLメタデータを書き直します。これは、リポジトリのルートURLが変更された場合(スキームやホスト名の変更など)に使用されますが、作業コピーには同じリポジトリ内の同じディレクトリが反映されます。

そうではないので、新たにチェックアウトする必要があります。

于 2010-01-28T15:22:25.270 に答える
2

同じ操作を試しました。この場合、ファイルurlにsvnsyncを使用してコピーを作成し、mv / home / me / sync / therepo / home / me / sync / repos/therepoを使用して移動しました。

理由:同期カタログに、リポジトリの表示を台無しにするヘルプスクリプトがいくつかあります。

svn switch --relocateは、文句を言い続ける外部を除いて、ほとんどの部分で機能しました。

解決策は残酷でした。問題のあるファイルが含まれているディレクトリを削除(rm -rf)し、svnupdateを再度実行して外部を再フェッチしました。

少なくともこの方法では、大規模なチェックアウトを再度行う必要はありませんでした。

また、後でsvnサーバーを新しいマシンに移動するときに、同僚に指示を書くことができるようになりました。

于 2011-04-21T09:56:11.863 に答える
1

また、ルートの子で再配置を実行している場合にも発生する可能性があります。

ルートフォルダに再配置してみてください。すべての子フォルダも自動的に再配置されます。

于 2014-02-10T16:46:27.683 に答える
0

svnadmin dump/を介してリポジトリを実際に移行したと仮定svnadmin loadすると、その場合は次のことを試すことができsvn switch --relocate https://newserver/some/directoryます。同じエラーが発生した場合は、実際には新しいを実行する必要がありますsvn co。そのエラーに遭遇したことは覚えていませんが、すべてのリポジトリは、移動先のようなネストされた構造を使用しているため、可能なiveはこれに対処する必要がありませんでした:-)

于 2010-01-28T14:52:57.350 に答える