2016-01-06 67 views
2

昨天我安装了一个新的Git的Windows Server 2.6.4这是工作的罚款与Mac客户端GIT中(GIT协议)的Git对于Windows:致命的:早EOF

今天,我挣扎着爬一个第二客户端(WINDOWS 7)工作。在尝试使其工作的过程中,我已将Windows服务器和客户端升级到最近发布的git 2.7.0

我试过禁用压缩功能...我尝试了无线和有线网络(Windows客户端和服务器坐在同一张桌子上)。我在客户端禁用AV。我试图调整内存设置的建议here

下面是客户端输出:

 
bash> git clone git://server.fqdn/repo.git 
Cloning into 'repo'... 
remote: 08:56:10.972997 git.c:348    trace: built-in: git 'pack-objects' '--revs' '--thin' '--stdout' '--progress' '--delta-base-offset' 
remote: Counting objects: 76, done. 
remote: Compressing objects: 100% (38/38), done. 
Receiving objects: 100% (76/76), 8.31 KiB | 0 bytes/s, done. 
fatal: read error: Invalid argument 
fatal: early EOF 
fatal: index-pack failed 
bash> 

这里是服务器输出:

 
bash> ./gitd.bat 

D:\tools\gitd>set GIT_TRACE=1 

D:\tools\gitd>D:\tools\Git\bin\git.exe daemon --reuseaddr --verbose --base-path=D:\git --export-all --enable=receive-pack 
08:59:49.023778 git.c:561    trace: exec: 'git-daemon' '--reuseaddr' '--verbose' '--base-path=D:\git' '--export-all' '--enable=receive-pack' 
08:59:49.023778 run-command.c:343  trace: run_command: 'git-daemon' '--reuseaddr' '--verbose' '--base-path=D:\git' '--export-all' '--enable=receive-pack' 
[7376] Ready to rumble 
09:00:03.056268 run-command.c:343  trace: run_command: 'D:\tools\Git\mingw64\libexec\git-core\git-daemon.exe' '--serve' '--reuseaddr' '--verbose' '--base-path=D:\git' '--export-all' '--enable=receive-pack' 
[6492] Connection from 10...:54729 
[6492] Extended attributes (27 bytes) exist 
[6492] Request upload-pack for '/repo.git' 
09:00:03.087469 run-command.c:343  trace: run_command: 'upload-pack' '--strict' '--timeout=0' '.' 
[6492] 09:00:03.134269 git.c:561    trace: exec: 'git-upload-pack' '--strict' '--timeout=0' '.' 
[6492] 09:00:03.134269 run-command.c:343  trace: run_command: 'git-upload-pack' '--strict' '--timeout=0' '.' 
[6492] 09:00:03.617872 run-command.c:343  trace: run_command: 'pack-objects' '--revs' '--thin' '--stdout' '--progress' '--delta-base-offset' 

我还能尝试一下呢?

+0

我放弃了并开始使用ssh协议代替 – wytten

回答

4

Git进程只知道当一些文字在Git进程的控制台窗口选择 在Windows 工作(例如,见 git clone fails with "index-pack" failed?)。 该文本选择会延迟守护进程的输出,这有助于(!)。由于 文本选择被清除(使用退出键),克隆/提取 大部分时间都失败。再次选择文本,并克隆/提取恢复 工作。使用git 2.11.0.windows.1通过在本地通过 git clone git://127.0.0.1/my-repo进行克隆,可以在Windows 10上轻松地复制该问题。

+0

OMG WTF!这为我修好了。但是,这是如何“知名”? – AyCe

+0

@AyCe,这个知识记录在Martin的“git clone failed with”索引包“失败?”的答案中。问题(请参阅我的答案中的链接)。我不知道马丁如何设法找到解决方法。此外,这些知识记录在[git-for-windows问题#304:调查git守护进程问题](https://github.com/git-for-windows/git/issues/304)。 – Oleg