precommit1c icon indicating copy to clipboard operation
precommit1c copied to clipboard

Продукт не работает, если ветка развернута в другом рабочем каталоге с использованием git worktree

Open artbear opened this issue 9 years ago • 3 comments

Буквально вчера нарвался на небольшую проблему при работе с сабжем. Использую механизм worktree, положил нужную ветку в соседний рабочий каталог, делаю коммит, а мне выдается ошибка 'не удается найти .git/hooks/v8file-extractor.os' Для решения хотел сделать копию продукта и положить в папку .git/hooks/, но нелья - существует файл .git для связи с корневым каталогом гит, и папку не создать. Проблему решил временно - подменив путь в корневом каталоге в файле .git/hooks/pre-commit на ../КорневойКаталог/.git/hooks/v8file-extractor.os (правильный путь к корневому каталогу), сделал коммит и вернул обратно.

Хотелось бы уметь штатно работать и в режиме worktree

artbear avatar Dec 16 '16 09:12 artbear

Могу ошибаться, но

#!/bin/sh
if ! [ -d .git/ ]
then
oscript -encoding=utf-8 $(cat .git|sed 's/^gitdir: //'|sed 's/.git\/worktrees\/.*//').git/hooks/v8file-extractor.os --git-precommit $(pwd)/src
else
oscript -encoding=utf-8 .git/hooks/v8file-extractor.os --git-precommit src
fi

bambr1975 avatar Mar 12 '17 16:03 bambr1975

Еще интересная информация https://longair.net/blog/2011/04/09/missing-git-hooks-documentation/ Можно использовать переменную среды GIT_DIR спасибо @bambr1975

artbear avatar Sep 12 '17 11:09 artbear

вроде вот так универсально получится

#!/bin/sh
if ! [ -d .git/ ]
then
ppwd=`pwd`
cd $GIT_DIR
oscript -encoding=utf-8 ../../../.git/hooks/v8file-extractor.os --git-precommit $ppwd/src
else
oscript -encoding=utf-8 .git/hooks/v8file-extractor.os --git-precommit src
fi

bambr1975 avatar Sep 12 '17 11:09 bambr1975