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 archive може да обработва ограничен брой аргументи в командния ред.

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

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

И ако работите на cygwin, EBADF може също да означава, че разрешението за един от файловете, които трябва да бъдат архивирани, е отказано от основната операционна система.

person mockinterface    schedule 30.12.2013