git rev-list 无限挂起

use*_*630 5 git ssh

如果我这样做git clone- 它完美无缺。

但是如果在它之后我尝试使用git pull它挂起(有时工作正常):

git 客户端版本:2.6.3

git 服务器版本:2.1.4

输出:

$ GIT_CURL_VERBOSE=1 GIT_TRACE=1 git pull 10:20:56.507549 git.c:348 trace: built-in: git 'pull' 10:20:56.508283 run-command.c:343 trace: run_command: 'fetch' '--update-head-ok' 10:20:56.508877 exec_cmd.c:128 trace: exec: 'git' 'fetch' '--update-head-ok' 10:20:56.511135 git.c:348 trace: built-in: git 'fetch' '--update-head-ok' 10:20:56.520316 run-command.c:343 trace: run_command: 'ssh' 'git@server' 'git-upload-pack '\''/vol/git/repos/repo.git'\''' 10:20:58.384437 run-command.c:343 trace: run_command: 'rev-list' '--objects' '--stdin' '--not' '--all' '--quiet'

Von*_*onC 1

五年后,随着 Git 2.29(2020 年第四季度)的出现,以及在我们过去调用许多小型 write(2) 的地方使用更多缓冲 I/O,情况可能会有所改善。

\n

请参阅Ren\xc3\xa9 Scharfe ( )的提交 a698d67提交 6af3b00提交 24b75fa(2020 年 8 月 12 日)。\n (由Junio C Hamano 合并 -- --提交 d8488b9中,2020 年 8 月 24 日)rscharfe
gitster

\n
\n

upload-pack:使用缓冲 I/O 与 rev-list 对话

\n

帮助者:Chris Torek
\n帮助者:Johannes Sixt

\n
\n
\n

f0bca72dc77(“ send-pack:使用缓冲 I/O 与 pack-objects 对话”,2016-06-08,Git v2.10.0-rc0 -合并批处理 #3中列出),显着减少系统调用次数并简化使用 stdio 的缓冲将对象 ID 发送到 rev-list 的代码。

\n

请注意立即处理错误以获取正确的错误代码,并在关闭流之前显式刷新缓冲区以捕获最后字节的任何写入错误。

\n
\n