как получить путь к проекту после фиксации сценария ловушки? (git)

Я хочу вызвать скрипт, который находится в репозитории.

Я мог бы, конечно, сделать следующее:

#!/bin/sh
../../myscript.sh

но я думаю, что это не красиво ;)

Итак, как мне получить путь к моему проекту в сценарии после фиксации?


person kmindi    schedule 09.03.2011    source источник


Ответы (1)


Когда вы имеете дело с не голым репозиторием, хук post-commit1 запускается с текущим рабочим каталогом рабочего дерева репозитория. Итак, вам не нужен ../../.

Если вам нужен полный путь к скрипту, вы всегда можете сделать:

SCRIPT=$(readlink -nf myscript.sh)

... или вы можете использовать git rev-parse --show-toplevel, чтобы получить абсолютный путь к рабочему каталогу:

SCRIPT=$(git rev-parse --show-toplevel)/myscript.sh

1 ... но обратите внимание, что это не относится к некоторым другим хукам, например. в хуке post-receive в не голом репозитории текущим рабочим каталогом является каталог .git.

person Mark Longair    schedule 09.03.2011
comment
Спасибо. Я не знал, что он уже был в нужном каталоге, мог бы попробовать его раньше, чтобы понять это самостоятельно.. ;) - person kmindi; 09.03.2011