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
также может подразумевать, что разрешение на один из файлов, подлежащих архивированию, было отклонено базовой ОС.