Кто-нибудь знает, что может вызвать эту ошибку?
Я пытаюсь создать пакет на git с помощью этой команды:
git diff -z --name-only --diff-filter=MAR 5e2a4b4 5261fe1 | xargs -s1000000 -0 git archive develop -o 'package.zip'
Кто-нибудь знает, что может вызвать эту ошибку?
Я пытаюсь создать пакет на git с помощью этой команды:
git diff -z --name-only --diff-filter=MAR 5e2a4b4 5261fe1 | xargs -s1000000 -0 git archive develop -o 'package.zip'
Помимо получения ошибки на ssh, которую вы уже исключили, также может быть, что архив git может обрабатывать ограниченное количество аргументов в командной строке.
Вы уже (подозрительно) ограничиваете общую длину аргументов с помощью -s
и указали, что ваша команда работает для некоторых коммитов, но не для других. Вы можете исследовать разницу дальше, установив GIT_TRACE=1
.
Как правило, количество аргументов ограничивается xargs -n
в дополнение к -s
, но будьте осторожны, так как это приведет к многократному выполнению команды, переданной в xargs, когда количество аргументов превышает порог -n
, а git archive
не поддерживает добавление в архив. . Вместо этого вам придется вызывать сценарий, который может увеличивать порядковый номер суффикса zip-архива, изменять имена zip-файлов каким-либо приемлемым образом или явно объединять выходные zip-файлы в основной zip-файл.
И если вы работаете на cygwin, EBADF
также может означать, что разрешение на архивирование одного из файлов было отклонено базовой ОС.