我已经搜索了网络,并没有提出一个很好的答案,但出于某种原因(升级到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开发人员之外,它们对任何人都没有任何意义。你想用这种方法解决什么问题?你好像走错方向了。
PLAIN
和DELTA
始终在Subversion FSFS版本文件中。此外,Jenkins(确切地说是它的SVN插件)应该不会有存储库后端格式的问题,因为它使用客户端层来访问存储库。
如果您对这些DELTA
和PLAIN
的含义感兴趣,请阅读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
现在,詹金斯应该又回来工作了!