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

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

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

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

person user2959162    schedule 06.11.2013    source источник
comment
Это может быть связано? stackoverflow .com/questions/7144811/   -  person crea1    schedule 06.11.2013
comment
Я не думаю, что проблема в соединении. Я могу создать пакет при использовании разных номеров коммитов. Есть проблема с конкретными коммитами.   -  person user2959162    schedule 06.11.2013


Ответы (1)


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

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

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

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

person mockinterface    schedule 30.12.2013