Apache Subversionリポジトリで問題が発生しましたが、最適な解決策を探しています。
Subversionリポジトリにコミットできず、エラーが発生します:
svn:E720002:コミットに失敗しました(詳細は次のとおりです):svn:E720002:ファイルを開くことができません'C:\ Repository \ myproject \ db \ txn-current':システムは指定されたファイルを見つけることができません。
空のtxn-current
ファイルを作成すると、コミット時に別のエラーが発生します。
svn:E070014:コミットに失敗しました(詳細は次のとおりです):svn:E070014:ファイルを読み取れません'C:\ Repository \ myproject \ db \ txn-current':ファイルの終わりが見つかりました
注:リポジトリのバックアップがないため、手動で問題を修正する必要があると想像してみてください。
同じ動作がStackOverflowですでに説明されています:svn commit問題、「d:\ UC \ db \ txn-current」を読み取れません:ファイルの終わりが見つかりました。しかし、そこにある答えが本当に役立つとは思えません。
\db\txn-current
手動で作成して0
そこ(または他の整数)を配置することは良い解決策ではないと思います。近い将来、予期しない動作が発生する可能性があると思いますが、svnadmin recover
および/またはsvnadmin verify
作成および/または入力しないでくださいtxn-current
。この場合、これらのコマンドは無力です。
FSFS記述 ファイルによると\db\txn-current
、次のトランザクションキー番号が含まれています。ファイルに整数を入れると、コミットでき、整数が1ずつ増えます。
ただし、無関係な整数を入力すると、レポで何かが壊れる可能性があるため、これが発生することは望ましくありません。
「txn-current」ファイルは、36進数のみを含む1行のテキストを含むファイルです。現在の値は、トランザクションのベースとなるリビジョン番号とともに、次のトランザクション名で使用されます。このシーケンス番号により、トランザクションが中止され、同じリビジョンに基づく新しいトランザクションが開始された場合でも、トランザクション名が再利用されないことが保証されます。FSFSがこのファイルに対して実行する唯一の操作は、「取得および増分」です。この操作中、「txn-current-lock」ファイルはロックされます。
\db\txn-current
問題を適切に修正するにはどうすればよいですか?ファイルにはどの整数を入れる必要がありますか?これを解決する他の方法はありますか?
編集:
db/current
同じ問題(存在しないか空の場合)をファイルで解決するにはどうすればよいですか?