【问题标题】:xargs: git : Bad file numberxargs: git : 错误的文件号
【发布时间】:2013-11-17 06:51:36
【问题描述】:

有人知道什么会导致这个错误吗?

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

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

【问题讨论】:

标签: git xargs


【解决方案1】:

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

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

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

如果您在 cygwin 上运行,EBADF 还可以暗示底层操作系统拒绝了对要归档的文件之一的权限。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 2011-09-10
    • 2012-08-07
    • 1970-01-01
    相关资源
    最近更新 更多