首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >svnsync无法从源空闲断开恢复

svnsync无法从源空闲断开恢复
EN

Stack Overflow用户
提问于 2021-07-21 20:46:35
回答 1查看 20关注 0票数 0

如果我尝试将第三方存储库镜像到本地存储库,那么当svnsync将300M+文件上载到速度较慢的目标服务器时,源服务器将断开连接,并且svnsync不会尝试重新连接它,而是进入无限循环。如何解决此问题?

代码语言:javascript
复制
C:\progs\svnsync-dir>svnsync --version
svnsync, version 1.14.0 (r1876290)
   compiled May 24 2020, 17:07:49 on x86-microsoft-windows

C:\progs\svnsync-dir>svnsync --steal-lock sync https://targetreposito.acme.com/s
vn/Reponame
Stole lock previously held by 'my-host-name:ab204a7a-756f-2947-af9c-caf904a8945d
'
Transmitting file data .........................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
................................................................................
............< here it hangs

EN

回答 1

Stack Overflow用户

发布于 2021-07-22 06:14:40

编译完svn通信库后,来自主干svnsyncserf而不是挂起现在使用An error occurred during decompression或(如果

代码语言:javascript
复制
[global]
http-compression = no

),然后使用Malformed XML: no element found

在转储svnsync和源服务器之间的HTTP会话后,我发现源服务器关闭了连接,而svnsync正在将部分接收到的增量刷新到目标服务器。

解决方案是使用禁用了slicepv工具,并使用一个巨大的缓冲区来保存完整的响应:pv -q -C -B4G

添加到/etc/hosts:

代码语言:javascript
复制
127.0.0.3 svn.acme.com
1.2.3.4   svn.acme.com.real

然后运行:

代码语言:javascript
复制
sudo socat TCP-LISTEN:443,reuseaddr,fork EXEC:"./hugebuf.sh svn.acme.com.real 443",nofork

hugebuf.sh (简化):

代码语言:javascript
复制
#!/bin/bash
host=${1:?}
port=${2:?}
exec 4>"/dev/tcp/${host:?}/${port}"
cat <&0 >&4 &
pv -q -C -B4G <&4

最后,正常运行svnsync命令。现在它可以提交这个修订了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68469752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档