修订日志中的 DELTA 与 PLAIN
DELTA versus PLAIN in revision logs
我在网上搜索了一下,没有找到一个好的答案,但出于某种原因(在升级到 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
修订?
更新:这个问题似乎是由 in this bug report.
引起的
您永远不应该手动触摸存储库修订文件。除了 Subversion 开发人员之外,它们对任何人都没有任何意义。您试图通过这种方式解决什么问题?看来你走错方向了。
PLAIN
和 DELTA
总是在 Subversion FSFS 修订文件中。此外,Jenkins(准确地说是它的 SVN 插件)应该没有存储库后端格式的问题,因为它使用客户端层来访问存储库。
如果您对 DELTA
和 PLAIN
的含义感兴趣,请阅读位于 https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure 的 FSFS 存储库后端设计文档。
这是对我有用的完整答案。
首先,following this guide,并假设 /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
现在,詹金斯应该又回来工作了!
我在网上搜索了一下,没有找到一个好的答案,但出于某种原因(在升级到 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
修订?
更新:这个问题似乎是由 in this bug report.
引起的您永远不应该手动触摸存储库修订文件。除了 Subversion 开发人员之外,它们对任何人都没有任何意义。您试图通过这种方式解决什么问题?看来你走错方向了。
PLAIN
和 DELTA
总是在 Subversion FSFS 修订文件中。此外,Jenkins(准确地说是它的 SVN 插件)应该没有存储库后端格式的问题,因为它使用客户端层来访问存储库。
如果您对 DELTA
和 PLAIN
的含义感兴趣,请阅读位于 https://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_fs_fs/structure 的 FSFS 存储库后端设计文档。
这是对我有用的完整答案。
首先,following this guide,并假设 /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
现在,詹金斯应该又回来工作了!