xargs: git: неверный номер файла

Кто-нибудь знает, что может вызвать эту ошибку?

Я пытаюсь создать пакет на git с помощью этой команды:

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

1 ответ

Помимо получения ошибки по ssh, которую вы уже исключили, может также случиться так, что git archive может обрабатывать ограниченное количество аргументов в командной строке.

Вы уже (подозрительно) ограничиваете общую длину аргументов -sи вы указали, что ваша команда работает для некоторых коммитов, но не для других. Вы можете изучить разницу дальше, установив GIT_TRACE=1,

Обычно число аргументов ограничено xargs -n в дополнение к -s но будьте осторожны, так как это выполнит команду, переданную xargs несколько раз, когда число аргументов превысит -n порог и git archive не поддерживает добавление в архив. Вместо этого вам придется вызывать скрипт, который может увеличивать порядковый номер суффикса архива zip, поворачивать имена файлов zip некоторым приемлемым способом или явно объединять выходные zip-файлы в главный zip-файл.

И если вы работаете на Cygwin, EBADF также может подразумевать, что разрешение на один из файлов, подлежащих архивированию, было отклонено базовой ОС.

Другие вопросы по тегам