xargs:git:文件描述符错误

4

有人知道是什么原因导致了这个错误吗?

我正在尝试使用以下命令在Git上创建一个软件包:

git diff -z --name-only --diff-filter=MAR 5e2a4b4 5261fe1 | xargs -s1000000 -0 git archive develop -o 'package.zip'

这可能与此有关?https://dev59.com/k2w05IYBdhLWcg3wmC6_ - crea1
我认为这不是连接问题。当使用不同的提交号时,我可以创建一个包。特定的提交存在问题。 - user2959162
1个回答

2
除了已经排除的ssh错误之外,可能还有一个原因是git archive命令行处理的参数数量是有限制的。您已经使用-s一项可疑地限制了参数的总运行长度,并且您指出该命令适用于某些提交但不适用于其他提交。您可以通过设置GIT_TRACE=1进一步调查差异。
通常使用xargs -n来限制参数数量是很常见的,除了使用-s,但要注意当参数数量超过-n阈值时,这将执行传递给xargs的命令多次,而git archive不支持向存档中追加内容。您需要调用一个脚本,该脚本可以增加zip后缀的运行编号,以某种可接受的方式旋转zip文件名,或将输出zip文件显式合并到主zip文件中。
如果您在cygwin上运行,则EBADF还可能意味着要归档的文件之一被底层操作系统拒绝了访问权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接