10

我试图获取 Android 1.6 版本的源代码,但 repo 同步操作一直挂起。

我将在终端上收到的消息的最后一部分粘贴在这里:

Fetching projects:  19% (32/164)
Initializing project platform/external/freetype ...
remote: Counting objects: 970, done.
remote: Compressing objects: 100% (414/414), done.
Receiving objects:  57% (558/970), 1.28 MiB | 26 KiB/s

它只是挂在那里......没有错误消息或类似的东西。

有没有人遇到过类似的问题?

4

3 回答 3

12

我想知道您是否正在使用 VMWare 来运行 Linux。在找到导致它的原因之前,我遇到了与您相同的问题:我们这边的 tcp 窗口大小设置为 0(满)。我在 Windows 7 64 位作为主机的 VMWare 上运行 Ubuntu 10.04。要修复它,只需确保在 VMWare 上为 Ubuntu 提供足够的 RAM 以丢弃任何内存问题。我将我的设置为 512MB 并将其增加到 1.5M 以获得更好的性能。然后是最重要的设置(也是真正起作用的设置):确保将 VMWare 上的网络适配器设置为桥接模式。例如,如果使用 NAT,NAT 服务将为您阻塞和弄乱窗口大小。

原因:客户端的 TCP 窗口大小告诉服务器它愿意一次从服务器接收的字节数;这是客户端的接收窗口。当窗口设置为 0 时,意味着客户端将无法接收更多数据,直到它处理其内部缓冲区中仍待处理的任何数据。这是正常的 TCP 东西。在客户端上设置为 0 的窗口的大小影响是 TCP 连接仍将存活一段时间,直到服务器决定他已经等待足够多并终止连接。这就是导致我的 repo 同步挂起而没有错误的原因。

于 2010-09-06T22:01:43.723 回答
6

希望这有助于有人提到这个论坛。

我遇到过大型存储库的 git 克隆问题。最初速度会很高,然后急剧下降,最后挂起。这是 TCP 窗口缩放的问题。一旦被禁用,它就可以正常工作。

(但奇怪的是,当我在 VMWare 中从 Linux 运行它时,没有任何问题。)

为当前会话禁用此功能 $ sudo sysctl -w net.ipv4.tcp_window_scaling=0

于 2011-04-19T10:50:17.237 回答
0

早在 9 月的 SO 上就有类似的问题。

它可以与网络速度相关,也可以链接到您正在使用的确切版本的 Git。
如果是msysgit,请更新到最新版本。
另请参阅msysgit 问题 361

于 2010-01-19T06:56:20.513 回答