使用svnsync
$ svnsync --non-interactive sync ${REPO}
Run Code Online (Sandbox Code Playgroud)
在中止该过程后,出现此错误消息并重试
Failed to get lock on destination repos, currently held by 'svn.test.com:0e4e0d98-631d-0410-9a00-9330a90920b3'
...
Failed to get lock on destination repos, currently held by 'svn.test.com:0e4e0d98-631d-0410-9a00-9330a90920b3'
svnsync: Couldn't get lock on destination repos after 10 attempts
Run Code Online (Sandbox Code Playgroud)
有没有办法解决这个问题?
如何更改(重定位)我在使用"svnsync init"(示例来自#https://whatever
to svn://whatever
)创建镜像存储库时输入的subversion URL ?
试图用新的url再次运行svnsync init但是
svnsync init file:///<path_to_mirror> http:///<new_url>
svnsync: Destination repository is already synchronizing from 'http:///<old_url>'
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用svnsync复制已使用的存储库(我这样做是为了确保我的存储库的最佳使用,只要它的机器正常工作)但它似乎不起作用.
我有两台机器(我更改了名称,但没有更改其他信息)
SOURCE/hooks
,只存在一个可执行文件:pre-revprops-change
.svn16/hooks
,可执行文件是pre-revprop-change
和start-commit
.在这台机器上,dav_svn.conf
包含指令SVNParentPath /var/svn
,使所有存储库都可以在http:// FINAL/svn下访问通过在浏览器中打开每个存储库URL并发出身份验证对话框,我确保URL和login/pwd都是正确的.
我正在尝试执行以下命令
svnsync initialize http://FINAL/svn/svn16 http://INITIAL/SOURCE
Run Code Online (Sandbox Code Playgroud)
但它总是最终显示出来
Authentication realm: <http://FINAL:80> All Subversion Repositories hosted on FINAL
Password for 'ubunut-user':
Authentication realm: <http://FINAL.fr:80> All Subversion Repositories hosted on FINAL
Username: svnsync
Password for 'svnsync':
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; …
Run Code Online (Sandbox Code Playgroud) 我必须处理两个存储库,并希望在保留历史记录的同时在两个存储库之间移动一个带有代码的目录.
我在这里读了几个问题,但我仍然不确定要走哪条路.我们的存储库是巨大的(文件(orkingcopy)不包括修订版>几GB),因为所有内容都已签入(代码+设计+ ...).
我到目前为止看到的解决方案是:
是否有其他解决方案,方法,或者我错过了其中一个解决方案?
我正在使用svnsync同步两个系统之间的SVN存储库,并且我不能100%确定它是否可以在同步完成后使其独立于我的"新用户".
我需要做些什么才能使它成为一个完全独立的实体?仅更改passwd文件是否足够?
所以我将我的 subversion 存储库存储在某个云上(例如 code.google.com),但由于各种原因,我需要将我的代码设为非公开。
我决定需要下载整个存储库并迁移到我自己的 svn 服务器。
所以我开始使用:
svnsync init DEST SRC
svnsync sync DEST
Run Code Online (Sandbox Code Playgroud)
每次修订 repo 大约需要 0.5 秒!
幸运的是,我的 repo 只有 200 次修订……所以要等几分钟。但是对于具有 200,000 或 2,000,000 次修订的成熟项目呢?
... 2e6 * 0.5 / 60 / 60 / 24 ~ 大约 11 天!
有什么比“svnsync”更快的方法可以从云端下载你的仓库?
我在一个结构严重的svn repo中有一个分支,需要被剥离并移动到另一个svn存储库.(我正试图清理一些).
如果我做了一个svn log
而不是停止复制/重命名,我可以看到我关心的所有3427个提交.除了编写一些主要脚本之外,有没有办法将修订版转出?
我会按照这个问题的建议,但这个分支已被移动到所有地方,我也想保留这些动作.
我一直在阅读svnsync来创建我们的存储库的只读副本,但我真的不明白拥有存储库的只读副本是什么意思.如果主服务器出于某种原因出现故障,那么只读副本是否可以读/写,以便人们可以承诺呢?如果没有,那么只读副本的重点是什么?
在同步存储库时,是否可以修复/绕过非UTF8编码的svn:log记录svnsync
?
背景
我正在接管一个开源模块的维护过程,该模块存储在一个大型(超过10,000个版本)的subversion(1.5.5)存储库中.我没有远程存储库的管理员权限来转储/过滤/加载模块.旧存储库正在停止,我正在尝试使用svnsync将原始子模块同步到我的本地(1.6+)存储库.例如:
svnsync file://home/svn/temp-repo/ http://path.to.repo/modulename/
Run Code Online (Sandbox Code Playgroud)
问题是旧的存储库没有强制执行UTF8编码,我遇到的错误如下:
svnsync: Cannot accept 'svn:log' property because it is not encoded in UTF-8
Run Code Online (Sandbox Code Playgroud)
我无法修改源存储库中的log属性,因此当编码未知/无效时,我需要以某种方式修改或忽略属性值.
有任何想法吗?
例如:
pre-revprop-change
脚本可以修改传输中的日志属性吗?我们计划在悉尼的另一个办公室拥有一个SVN镜像存储库.我们在两个位置都使用VisualSVN服务器v2.5.7.
我决定用svnsync
它来做.起初我想同步所有存储库,当所有存储库与镜像存储库同步时,调度程序将svnsync
每隔午夜调用一次.
它可以同步我们的一个存储库的167个修订版.但是在第168次修订版中,我们有一个无法同步的大文件(大约250 MB的压缩oracle文件).即使我修改了本地和远程服务器的超时,它也无法正常工作.它在一个点上粘了大约一个小时,并给我以下错误:
传输文件数据....................... svnsync:E175002:PUT为'/ {some path}/{ bigfile } .zip':无法发送请求body:已建立的连接已被主机中的软件中止.<{ target url }>
以下是我在httpd-custom.conf
VisualSVNs的Apache服务器(本地,镜像)中的文件中所做的修改:
Timeout 300000
KeepAlive On
MaxKeepAliveRequests 0
KeepAliveTimeout 300000
<IfModule dav_svn_module="">
# Enable a 1 Gb Subversion data cache for both fulltext and deltas.
SVNInMemoryCacheSize 1048576
SVNCacheTextDeltas On
SVNCacheFullTexts On
#SVNCompressionLevel 9
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我甚至将超时时间增加到600000或更多,但结果是一样的.我以http模式启动了两台服务器.在我们的本地网络上,它可以在20分钟内同步所有存储库.
关于我们的互联网连接的上传速度大约是256 Kbs,我不希望这次在互联网环境中.但我希望SVN服务器等待我为它们设置的超时,因为我们可以轻松地将这些大小的文件提交到使用CollabNet Server的其他SVN服务器.成功提交只需2个小时.我认为300000秒的超时距离是2小时.