2

リモートのSubversionリポジトリへの読み取りアクセス権があり、svnsyncを介してクローンを作成したいと思います。同期は正常に開始され、正常に進行しますが、終了間際に次のようなエラーが発生します。

Transmitting file data ...svnsync: File not found: transaction '12893-qyy', path
 '/project_name/trunk/path/to/file.cpp'

問題のリビジョン、前のリビジョン、次のリビジョンを正常にチェックできます。すべてのファイルが配置されています。問題のファイルのログを確認しました。以前のリビジョンでは、そのフォルダはこの場所に移動されています。

svnsyncにこのエラーを無視して同期を続行させる方法はありますか?リポジトリへの管理者アクセス権がないため、修正できません。

更新:コメントへの回答:サーバー使用(1.6.6)、最新の安定版(1.6.17)、ベータ版(1.7)と同じSubversionクライアントを確認しました。すべてがまったく同じエラーになります。また、「壊れた」リポジトリを正常にチェックアウトできます。最新のリビジョン、問題のリビジョン(12893)、その前のリビジョン(12892)、およびその後のリビジョン(12894)でエラーは発生しません。

更新:より多くのコメントへの回答:svnログは、リビジョン12892でフォルダー'to'がからに移動されたことを示してい/repo/other_project/trunk/source_pathます/repo/project_name/trunk/path

4

2 に答える 2

7

この前後にリビジョンをチェックアウトできることを考えると、リポジトリが破損していないと思います。svnsyncは、データのミラーリングなどではなく、トランザクションを「再生」することで機能します。そのため、トランザクションの再生を妨げるバグが存在する可能性があります。そのコミットについて何かがバグを引き起こしたと思います。svn log -c 12893 -vを実行して、リビジョンをより詳細に確認できます。問題を引き起こしている「R」eplaceのようなものが含まれていると思います。情報を収集してusers@subversion.apache.orgに送信すると、分析して修正できます。

他のアイデアは次のとおりです。

  • ソースリポジトリにはどのようにアクセスしますか?file:// http://など。http://の場合は、NeonのデフォルトのHTTPライブラリの使用からSerfに変更して、問題が解決するかどうかを確認できます。これを行うには、実行時にsvnsyncコマンドに--config-option = servers:global:http-library=serfを追加します。試してみる価値があります。

  • リビジョンをダンプできるかどうかを確認してください。svnadmin dump -r12892:12893--インクリメンタルリポジトリ名>dumpfile

  • リビジョンをダンプできる場合は、svnadminloadを使用して手動でターゲットリポジトリにロードできます。

  • リビジョンをロードできる場合は、svnsyncのプロパティを手動で修正して、そのリビジョンが実行されたことを認識できるようにすることができます。svn ps --revprop -r0 svn:sync-last-merged-rev 123893 url:// to / mirror

更新:この問題はsvnrdump、subversion1.7RC2の新しいユーティリティを使用することで解決されました。

于 2011-09-13T20:25:57.160 に答える
0

上記の応答に追加するために、私の問題を修正した最後の手段は、svndumpfilterコマンドを使用して、破損したノードを除外することでした。

svnrdumpを使用した後、特定のリビジョンをロードしようとするたびに、次のエラーが発生していました。

... svnadmin:E160004:ファイルシステムが破損していますsvnadmin:E200014:表現の読み取り中にチェックサムが一致しません:予期された:77ec72e82afddd1cb8d2c63760cf4dbb実際:f34fb5883dffffec3cd59a69f8a2cb99

リビジョンのダンプをrev12892.dmpとして作成した場合は、パスを除外できます。「/project_name/ trunk/path」は次のとおりです。

svndumpfilter Exclusive / project_name / trunk / path <rev12892.dmp> pruned_dump_file

svndumpfilterコマンドの詳細については、svn redbookを参照してください:http ://svnbook.red-bean.com/en/1.7/svn.ref.svndumpfilter.commands.c.exclude.html

于 2019-10-18T00:51:45.370 に答える