Svn 空的或不存在的'/db/txn电流';在Subversion存储库中

Svn 空的或不存在的'/db/txn电流';在Subversion存储库中,svn,svnadmin,svn-repository,fsfs,svn-administraton,Svn,Svnadmin,Svn Repository,Fsfs,Svn Administraton,我在Apache Subversion存储库中遇到了一个问题,我正在寻找最佳的解决方案: 我无法提交到Subversion存储库,我遇到了以下错误: svn:E720002:提交失败(详细信息如下):svn:E720002:无法打开 文件“C:\Repositories\myproject\db\txn current”:当前 系统找不到指定的文件 如果我创建一个空的txn current文件,则在提交时会出现另一个错误: svn:E070014:提交失败(详细信息如下):svn:E070014

我在Apache Subversion存储库中遇到了一个问题,我正在寻找最佳的解决方案:

我无法提交到Subversion存储库,我遇到了以下错误:

svn:E720002:提交失败(详细信息如下):svn:E720002:无法打开 文件“C:\Repositories\myproject\db\txn current”:当前 系统找不到指定的文件

如果我创建一个空的
txn current
文件,则在提交时会出现另一个错误:

svn:E070014:提交失败(详细信息如下):svn:E070014:无法读取 文件“C:\Repositories\myproject\db\txn current”:结束 找到的文件数量

注意:假设我没有存储库的备份,因此我必须手动修复该问题

已在StackOverflow上讨论了相同的行为:。然而,我怀疑这些答案是否真的有用:

  • 我认为手动创建
    \db\txn current
    并将
    0
    放在那里(或任何其他整数)不是一个好的解决方案。我想在不久的将来它可能会导致一些意想不到的行为

  • svnadmin recover
    和/或
    svnadmin verify
    不创建和/或填充
    txn current
    。在这种情况下,这些命令是无效的

根据
\db\txn,当前文件包含下一个事务密钥号。如果我在文件中放入一些整数,那么我可以提交,整数将增加1

然而,看起来放一些不相关的整数可能会破坏我的回购协议,我不希望这种情况发生

“txn current”文件是一个包含一行文本的文件,其中 仅包含一个基数为36的数字。当前值将在中使用 下一个事务名称,以及事务的修订号 基于。此序列号确保事务名称为 不重用,即使事务被中止并创建新事务 根据相同的修订开始。FSFS的唯一操作 对该文件执行的操作是“获取并增量”;“txn电流锁” 文件在此操作期间被锁定

我应该怎么做才能正确修复当前的
\db\txn
问题?我应该在文件中输入什么整数?还有其他办法解决这个问题吗?

编辑:

  • 除了
    db/current
    文件外,如何解决相同的问题(不存在或为空)

在FSFS
txn current
中保存下一个事务id。提交后,事务id存储在修订版中。因此,在
txn current
中输入一个非常大的数字应该可以

另一个解决方案是
svnadmin转储
repository,然后
svnadmin加载
到fresh repository

更新:
txn current
文件损坏问题进行了调查,并在r1483781中进行了修复

  • 修复Windows(r1483781)上电源/磁盘故障导致的存储库损坏

Subversion 1.7.10及更高版本中提供了修复程序。

我也遇到过类似的问题。为了解决这个问题,我编辑了“txn current”文件,在里面放了一些大的数字,比如xxxxx。除此之外,我还必须编辑“db\transactions”文件夹中另一个名为“current”的文件。我删除了此文件中的所有内容,只添加了一个enter并关闭了此文件。

我收到的错误是“无法读取'D:\SVNROOT\UC\db\txn current':找到文件结尾” 进一步调查后,我们意识到在一些服务器操作系统升级活动之后,db文件夹中的“当前”文件是空的。 我们从revs文件夹中找到了最新版本号,并将该编号添加到“当前”文件中

它仍然不起作用,然后我们发现它指定您必须输入修订号,然后输入


这可以解决错误

我遇到了类似的问题,在提交过程中发生了电源故障。我试图修改“当前”文件,但不起作用

我对存储库进行了备份,然后删除了“当前”文件,并在存储库上运行了“svnadmin验证”。此后,我得到了以下错误:

“格式错误的文件svn:序列化哈希缺少终止符”

然后我转储了存储库,删除了旧的存储库,重新创建了存储库并导入了转储文件

此后,一切又恢复了正常。完整的存储库和历史记录仍然存在。

我做到了:

svnadmin verify /mnt/repos/
svnadmin recover /mnt/repos/
仍然有错误

svn: E000002: Übertragen schlug fehl (Details folgen):
svn: E000002: Kann Datei »/mnt/repos/db/txn-current« nicht öffnen: Datei oder Verzeichnis nicht gefunden
然后我创建了一个空文件:
/mnt/repos/db/txn current
然后,
svn ci
再次工作

如果您不想等待:

svnadmin verify -r 997:HEAD <path>
svnadmin验证-r 997:头部

速度更快。带有修订号的exchange 997,小于我的错误修订版。安装SVN的虚拟机空间已满。
所以清理了空间

这里的相同问题,你解决了
db/current
文件问题吗?`在txn current文件中放入大量数字为我解决了问题,谢谢。