2

リポジトリにコミットしようとすると、奇妙なエラー Can't remove 'repoPath/db/transactions/96479-3.txn/transactions' が表示されます。コミットは実際にはファイルの追加と更新の両方で発生しますが、クライアントはコミットが成功したことを知るために更新されません。クライアントでさらに更新を行うと、それ自体のファイルの競合が発生します。

Linux で動作するバージョン 1.4.2 (r22196)。Apacheフロントエンドv 2.2.3を使用

リポジトリは実際には、本番システムからのすべてのファイルのコピーです。rcp -rp sourceHost:/path ./localRepoOnQaBox を使用してファイルをコピーしました

コピー後、リポジトリパスで chown -R svn:svn を使用しました

fs_type is fsfs

この動作の理由は何か分かりますか?

このセットアップは本番環境で機能することを付け加えておきますが、レポをテスト環境にコピーした後、エラーが発生します。Prod はハードウェアで、QA は VM です。

4

1 に答える 1

1

したがって、コミットを行うと、コミットが機能します。しかし、そのエラー メッセージが表示され、作業ディレクトリが混乱した状態のままになりますか?

post-commit フックが失敗している可能性があります。コミットは既に行われているため、リポジトリが更新されます。ただし、コミットの後処理が完了しないため、作業ディレクトリは更新されません。

誰かがコミット時に変更をサーバーにコピーしている疑いがあり、コミット後の操作としてこれを行っています。これは、この特定の目的でコミット後のフックを使用したくない理由を示していますが、それは別の暴言です。

失敗している post-commit フックがあるかどうかを確認します。フックを無効にすると、すべてが正常に機能するに違いありません。post-commit フックを毎分実行する crontab に置き換えるか、Jenkinsなどを使用して post-commit フックのニーズをすべて実行します。

于 2012-10-16T15:05:33.843 に答える