git hook bash не работает - PullRequest
1 голос
/ 31 января 2012

усердно работает над настройкой моего git-репозитория, но все еще безуспешно.

Цель: как только я перейду к своему локальному репо, в ветку dev, он будет объединен с master brench.

пост-обновление (ловушка)

#!/bin/bash
#
# An example hook script to prepare a packed repository for use over
# dumb transports.
#
# To enable this hook, rename this file to "post-update".

LOGFILE=/www/htdocs/w00dac5d/_production/.git_push_log.tmp

&> $LOGFILE

echo 'push-start'

echo `basename $PWD`
#cd ../
#echo `basename $PWD`

git status
git checkout master

echo 'push-checkout'
git merge dev

exec git-update-server-info

получение ошибок типа

"это не репозиторий", но я проверяю папку и этоправильный.

enter image description here

1 Ответ

2 голосов
/ 01 февраля 2012

Проблема здесь заключается в том, что в хуке post-update в репозитории, не являющемся пустым, GIT_DIR имеет значение ., а текущий каталог - каталог .git. Для получения подробной информации о каждом другом git hook, см. это недооцененное сообщение в блоге ;)

Это означает, что если вы сделаете cd .., то GIT_DIR все равно будет ., но ваш текущий каталог больше не будет каталогом .git. Попробуйте начать свой скрипт ловушки с:

export GIT_DIR=/whereever/production/.git
export GIT_WORK_TREE=/whereever/production/

... на всякий случай - правила о том, как GIT_DIR и GIT_WORK_TREE взаимодействуют, сложны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...