xargs:git:错误的文件号

时间:2013-11-06 06:05:58

标签: git xargs

任何人都知道可能导致此错误的原因是什么?

我正在尝试使用此命令在git上创建一个包:

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

1 个答案:

答案 0 :(得分:2)

除了在ssh上获得错误之外,你已经排除了它,也可能是git archive可以在命令行上处理有限数量的参数。

您已经(怀疑地)使用-s限制参数的总运行长度,并且您表明您的命令适用于某些提交但不适用于其他提交。您可以通过设置GIT_TRACE=1来进一步调查差异。

除了xargs -n之外,通常会限制带有-s的参数数量,但请注意,当参数数量超过{{{}时,这将执行多次传递给xargs的命令。 1}}阈值,-n不支持附加到存档。您将不得不调用脚本,可以增加zip存档后缀的运行编号,以某种可接受的方式旋转zip文件名,或者将输出zip文件显式合并到主zip文件中。

如果您在cygwin上运行,git archive也可能意味着底层操作系统拒绝了其中一个要归档的文件的权限。