1

我在网上搜索并没有给出一个好的答案,但由于某种原因(升级到 TortoiseSVN 1.9.0 之后?)我的 Subversion 修订日志文件格式已经改变,这让 Jenkins 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创建修订?

更新:此错误报告中描述了这似乎导致的问题。

4

2 回答 2

2

您永远不应该手动触摸存储库修订文件。除了 Subversion 开发人员之外,它们对任何人的意义为零。您试图以这种方式解决什么问题?看来你走错方向了。

PLAIN并且DELTA总是在 Subversion FSFS 修订文件中。此外,Jenkins(准确地说是它的 SVN 插件)在存储库后端格式方面应该没有问题,因为它使用客户端层来访问存储库。

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

于 2015-08-20T11:17:07.497 回答
0

这是对我有用的完整答案。

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

 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

现在,詹金斯应该重新开始工作了!

于 2015-08-24T02:08:33.957 回答