2

最近、SVN リポジトリを SERVER1 から SERVER2 に移行しました。

  • SERVER2にSVNをインストールしました。
  • svnrdumpユーティリティを使用してリポジトリをダンプしました。
  • ユーティリティを使用svndump loadして、ダンプ ファイルを新しい svn サーバーにロードしました。

SERVER1 svnのパスから作業コピーWCをチェックアウトしました。http://SERVER1/project1/data

ここで 1 つのことに注意してください。

  • ダンプを取ったところ、SERVER1 の SVN リビジョンは 12345 でした。
  • WCをチェックアウトしたとき、SVN リビジョンは 13456 でした。

今、 を使用してrelocate from tortoise svn on windowsWCを SERVER2 svn から path に再配置しましhttp://SERVER2/project1/dataた。

引っ越し成功。

この後、check-inrev-12345 から rev-13456 までに行われた変更を http://SERVER2/project1/data.

しかし、ここで何が起こっているのですか:

  • コミット操作では、コミットするファイルが表示されません。
  • 変更を確認しても、変更は表示されません。
  • SVN Update にエラー 'No such Revision: 13456' が表示される。
  • WChttp://SERVER2/project1/data同様に存在するファイルを変更し、コミットしようとしました。ここでも「No such Revision: 13456」と表示されます。

SERVER1 の rev-13456 の WChttp://SERVER2/project1/dataが SERVER2の rev-12345 に再配置されると、これら 2 つのリビジョン間で行われたすべての違いが表示されることを期待していました。

注:SERVER1はしばらくするとシャットダウンされるため、上記を試しています。現在、両方のリポジトリが存在します。SERVER1 はまだ人々によって使用されており、SERVER2 は SERVER1 の最新の状態に保たれます。

4

1 に答える 1

3

移動先のサーバーに存在するリビジョンより後のリビジョンで作業コピーをチェックアウトしたため、変更を計算するための参照ポイントがありません。SERVER2 を更新するこの方法は機能しません。次の 2 つのオプションがあります。

  1. 欠落しているすべてのリビジョンで SERVER2 を適切に更新するには、残りのリビジョンの部分的なダンプ/ロードを実行する必要があります。 svnadmin dump repo_path -r 12346 --incremental、次に新しいサーバーにロードします。12346 以降のリビジョンのみをダンプします。これは、SERVER1 の一部ではない他のリビジョンを SERVER2 に追加していない場合にのみ機能します。

  2. その間のリビジョン履歴を気にせず、その間のすべての変更を 1 つのリビジョンとして新しいサーバーにダンプしたいだけの場合は、最初に新しいサーバーから新たにチェックアウトしてください。次に、SERVER1 の WC からすべての変更を SERVER2 のこの WC にコピーしてコミットします。

最初のオプションの方が優れており、変更がどれほど複雑かによっては、おそらくさらに作業が少なくなります。

于 2013-05-16T16:22:25.237 に答える