我遇到了 Apache Subversion 存储库的问题,我正在寻找最佳解决方案:
我无法提交到 Subversion 存储库,并且收到错误消息:
svn: E720002: Commit failed (详情如下): svn: E720002: Can't open file 'C:\Repositories\myproject\db\txn-current': 系统找不到指定的文件。
如果我创建一个空txn-current
文件,如果提交时会出现另一个错误:
svn:E070014:提交失败(详细信息如下):svn:E070014:无法读取文件'C:\Repositories\myproject\db\txn-current':找到文件结尾
注意:假设我没有存储库的备份,因此我必须手动修复该问题。
StackOverflow 上已经讨论了相同的行为:svn commit problem, Cannot read 'd:\UC\db\txn-current': End of file found。但是我怀疑那里的答案真的很有帮助:
我不认为
\db\txn-current
手动创建并放一个0
(或任何其他整数)是一个好的解决方案。我想它可能会在不久的将来导致一些意想不到的行为,svnadmin recover
和/或svnadmin verify
不创建和/或填充txn-current
. 在这种情况下,这些命令是无能为力的。
根据FSFS 描述 \db\txn-current
文件包含下一个事务密钥号。如果我将一些整数放入文件中,那么我可以提交并且整数将增加 1。
然而,看起来放一些不相关的整数会破坏我的回购中的某些东西,我不希望这种情况发生。
“txn-current”文件是一个包含单行文本的文件,其中仅包含一个 base-36 数字。当前值将用于下一个事务名称,以及事务所基于的修订号。这个序列号确保事务名称不会被重用,即使事务被中止并且基于相同修订的新事务开始。FSFS 对该文件执行的唯一操作是“获取和递增”;“txn-current-lock”文件在此操作期间被锁定。
我应该怎么做才能\db\txn-current
正确解决问题?我应该在文件中放入什么整数?有没有其他方法可以解决这个问题?
编辑:
- 除了文件,我如何解决相同的问题(不存在或为空)
db/current
?