gear-update -f не работает в случае, если каталог для копирования исходников ещё не был в git репозитарии. Работает если запускать gear-update шеллом без параметра -e. Как воспроизвести: mkdit testgit cd testgit git-init-db mkdir testsource gear-update -f /tmp/testsource.tar.bz2 testsource Патч для исправления: diff --git a/gear-update b/gear-update index d61a561..0f7e917 100755 --- a/gear-update +++ b/gear-update @@ -314,7 +314,7 @@ destdir="${destdir#$topdir/}" [ -n "$destdir" ] && destdir="${destdir%/}" || destdir='.' -git rm -n -r -- "$destdir" >/dev/null +[ -d "$destdir" ] || git rm -n -r -- "$destdir" >/dev/null if [ -z "$force" ]; then out="$(git diff --name-only -- "$destdir" &&
Мне такой патч не нравится. Я сделал ключ --create, который создаёт "$destdir" директорию. Сейчас этот gear-update есть в: git.alt:/people/legion/packages/gear.git . Плюс там же исправления в работе с ключом --force.