修订日志中的DELTA和PLAIN



我已经搜索了网络,并没有提出一个很好的答案,但出于某种原因(升级到TortoiseSVN 1.9.0之后?)我的Subversion修订日志文件格式发生了变化,这是混淆的詹金斯SVN插件,我很困惑,为什么。

.../Repository/db/revs/0中,查看修订文件的尾部,我得到tail -n40 116(较旧的修订)的以下内容:

PLAIN
K 8
branches
[elided]
ub-3.0.t115-38 modify-file true false /trunk/foo/bar.c
17579 17721

对于tail -n21 117, HEAD修正:

DELTA 116 17463 103
SVNgfK▒a19
[elided]
ua-3.0.t116-39 modify-file true false /trunk/baz/wibble.h
4646 4785

是否有一些工具将这些DELTA修订日志转换为PLAIN格式,或者一些设置来防止创建DELTA修订?

UPDATE:这个错误报告中描述了这个问题。

您不应该手动触摸存储库修订文件。除了Subversion开发人员之外,它们对任何人都没有任何意义。你想用这种方法解决什么问题?你好像走错方向了。

PLAINDELTA始终在Subversion FSFS版本文件中。此外,Jenkins(确切地说是它的SVN插件)应该不会有存储库后端格式的问题,因为它使用客户端层来访问存储库。

如果您对这些DELTAPLAIN的含义感兴趣,请阅读FSFS存储库后端设计文档https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure。

以下是对我有效的完整答案。

首先,遵循本指南,并假设/cygdrive/c/SVNRepository为repo位置,执行以下操作以获取当前存储库的快照:

 cd /cygdrive/c
 svnadmin dump SVNRepository/ >copy.dump
 rm -rf SVNRepository
 svnadmin create --compatible-version 1.8 SVNRepository

注意--compatible-version 1.8是非常重要的,因为Jenkins还不能理解新的1.9格式。

现在使用您选择的编辑器,加载SVNRepository/db/fsfs.conf,例如:

vi SVNRepository/db/fsfs.conf

找到以下两行(对我来说是61行和69行):

# enable-dir-deltification = true
# enable-props-deltification = true

然后改成:

enable-dir-deltification = false
enable-props-deltification = false

现在将快照导入新数据库:

svnadmin load SVNRepository/ < copy.dump

现在,詹金斯应该又回来工作了!

相关内容

  • 没有找到相关文章

最新更新