回购同步挂起

时间:2010-01-19 06:09:56

标签: android git repository sync

我试图获得Android 1.6版本的来源,但是回购 同步操作一直悬挂。

我正在粘贴终端上邮件的最后一部分:

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

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

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

3 个答案:

答案 0 :(得分:11)

我想知道您是否使用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同步挂起而没有错误的原因。

答案 1 :(得分:5)

希望这有助于有人推荐此论坛。

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

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

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

答案 2 :(得分:0)

存在类似的问题back in September on SO

它可以与网络速度相关,或与您正在使用的Git的确切版本相关联 如果是msysgit,请更新到最新版本 另请参阅msysgit issue 361