5

同步存储库时是否可以修复/绕过非 UTF8 编码的 svn:log 记录svnsync

背景

我正在接管一个开源模块的维护工作,该模块存储在一个大型(超过 10,000 个修订版)subversion (1.5.5) 存储库中。我没有远程存储库的管理员访问权限来转储/过滤/加载模块。旧存储库已停用,我正在尝试使用 svnsync 将原始子模块同步到我的本地(1.6+)存储库。例如:

svnsync file://home/svn/temp-repo/ http://path.to.repo/modulename/

问题是旧存储库没有强制执行 UTF8 编码,我遇到了如下错误:

svnsync: Cannot accept 'svn:log' property because it is not encoded in UTF-8

我无法修改源存储库中的日志属性,因此当编码未知/无效时,我需要以某种方式修改或忽略属性值。

有任何想法吗?

例如:

  • pre-revprop-change脚本可以在传输过程中修改日志属性吗?
  • 有人告诉我 git-svn 可以处理它,但使用中间 git repo - 这究竟是如何完成的?
  • 是否可以完全忽略日志属性,或者对于特定的修订
4

3 回答 3

2

您需要等待 Subversion 的下一个版本,有一个待定补丁可以将非 UTF8 编码支持添加到svnsync.

于 2011-01-15T22:49:05.827 回答
2

你需要修改pre-revprop-change.tmpl

# cp pre-revprop-change.tmpl pre-revprop-change.tmp
# vim pre-revprop-change.tmp
exit 1 ==> exit 0

否则,您可以使用svnadmin setrevprop修改 repos

于 2012-10-11T06:12:09.583 回答
1

有一个简单的解决方法。使用以下语句更改源存储库中的日志条目:

修订版 10281 和 /home/svn/repos 中的存储库的示例

svn proplist -v --revprop -r 10281 file:///home/svn/repos | iconv --to-code UTF8//IGNORE -o /tmp/iconv.out

svn propset svn:log --revprop -r 10281 -F /tmp/iconv.out file:///home/svn/repos

于 2011-03-23T07:01:56.637 回答