0

如果我尝试将第 3 方存储库镜像到本地存储库,那么在svnsync将 300M+ 文件上传到慢速目标服务器时,源服务器会断开连接并且svnsync不会尝试重新连接并进入无限循环。如何解决这个问题?

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

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

serf从主干编译 svn 通信库svnsync而不是挂起后,现在崩溃An error occurred during decompression或(如果

[global]
http-compression = no

)~/.subversion/servers然后用Malformed XML: no element found.

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

解决方案是使用禁用的pv工具slice和巨大的缓冲区来保存完整的响应:pv -q -C -B4G

添加到 /etc/hosts:

127.0.0.3 svn.acme.com
1.2.3.4   svn.acme.com.real

然后运行:

sudo socat TCP-LISTEN:443,reuseaddr,fork EXEC:"./hugebuf.sh svn.acme.com.real 443",nofork

hugebuf.sh(简化):

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

最后,正常运行 svnsync 命令。现在它能够提交这个版本。

于 2021-07-21T22:14:40.107 回答