Bug 12893

Summary: gear-update -f не всегда работает
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: gearAssignee: Dmitry V. Levin <ldv>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: glebfm, ldv, legion, placeholder
Version: unstable   
Hardware: all   
OS: Linux   

Description Anton Farygin 2007-09-24 22:58:02 MSD
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" &&
Comment 1 Alexey Gladkov 2007-09-25 16:45:27 MSD
Мне такой патч не нравится. Я сделал ключ --create, который создаёт "$destdir"
директорию.

Сейчас этот gear-update есть в:

git.alt:/people/legion/packages/gear.git .

Плюс там же исправления в работе с ключом --force.