git windows post pull - PullRequest
       14

git windows post pull

1 голос
/ 09 июня 2011

Я недавно перешел из SVN.Мой сервер работает под Windows (не вините меня, это был не мой выбор:}

Я создал репо с двумя ветками: master и stable.

На моемСервер Я хочу получить файлы из стабильной ветви.

Я сделал:

git clone git://url/.git src
cd src
git checkout --track -b stable origin/stable

Раньше у меня был скрипт .bat

cd my_repo_dir
svn update
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

, и он работал, теперьс git

cd my_repo_dir
git pull
echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

после git pull ничего не выполняется, будь оно успешным или актуальным. Оно просто выходит без предупреждения.

Я думал о хуках.Я создал:

.git/hooks/post-receive
.git/hooks/post-update

оба файла с одинаковым содержимым:

echo APPLICATION_STAGE = 'production' > conf\__init__.py
net stop apache2.2
net start apache2.2

и нет, он также не выполняется ... Возможно, мне не хватает интерпретированной строки объявления (#!/ bin / sh на * nix), но я не уверен, что это на Windows ...

Ответы [ 2 ]

3 голосов
/ 09 июня 2011

Несколько баллов:

  • Убедитесь, что у вас есть git.exe на пути.Сделайте where git, и вы должны получить что-то вроде

    C:\Program Files (x86)\Git\bin\git.exe
    

    Если используется git.cmd (из C: \ Program Files (x86) \ Git \ cmd \ git.cmd), вы должнысделайте call git pull, чтобы продолжить выполнение.Я бы сказал, добавьте git.exe к пути и начните использовать его.

  • Даже в Windows вы должны иметь шебанг - #!/bin/sh для правильной работы хуков.

  • Если вы хотите, чтобы крюк работал при натяжении, вы, вероятно, хотите использовать post-merge крючок.post-receive и post-update запускаются на удаленных репозиториях при нажатии на них.

1 голос
/ 09 июня 2011

git - вероятно, пакетная оболочка для реального исполняемого файла. Используйте call git pull.

И эти перехваты запускаются, только когда содержимое выталкивается из удаленного местоположения, насколько я могу судить из документации. Таким образом, они игнорируются для pull.

...