Развертывание сайта Git - проверка в крюке после получения не работает

Я следовал этому руководству "Использование Git для управления веб-сайтом", используя Tower для зафиксируйте и отправьте мой локальный репозиторий на удаленный сервер. Нажатие завершается следующим сообщением:

Pushing to ssh://[email protected]/~/git/tprevo.git
stdin: is not a tty
Counting objects: 40, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (37/37), done.
Writing objects: 100% (40/40), 171.95 KiB, done.
Total 40 (delta 3), reused 0 (delta 0)
To ssh://[email protected]/~/git/tprevo.git
 * [new branch]      master -> production
updating local tracking ref 'refs/remotes/production/production'

Successfully created tracking connection.

Я убедился, что мой хук после получения выполняется, но команда checkout не добавляет отправленный код в то, что, как мне кажется, я настроил в качестве рабочего каталога. Я пытался понять это весь день.

после получения:

#!/bin/sh
GIT_WORK_TREE=/home/tprevo/public_html/tprevo git checkout -f

Я новичок в Git и очень хочу учиться. Каков наилучший способ отладить это?


person okyanet    schedule 20.06.2012    source источник
comment
Вы проверили разрешение на /home/tprevo/public_html/tprevo ? Он должен быть доступен для записи пользователю, к которому вы подключаетесь по ssh.   -  person J-16 SDiZ    schedule 21.06.2012
comment
Да, он доступен для записи, я временно установил его на 777, но файлы никогда не извлекаются по этому пути. Не было бы сообщения об ошибке, если бы путь был недоступен для записи?   -  person okyanet    schedule 21.06.2012
comment
/home/tprevo/ и /home/tprevo/public_html также необходимо как минимум 111 (a+x).   -  person J-16 SDiZ    schedule 21.06.2012
comment
Боюсь еще ничего. То, что я ищу, - это несколько проверок, которые нужно поместить в мой хук после получения, чтобы я мог понять, где это падает, вместо того, чтобы просто тихо выйти из строя.   -  person okyanet    schedule 21.06.2012
comment
Ааа... У вас несколько веток? Я вижу производство на удаленной стороне... попробуйте изменить свой хук, чтобы указать ветку, которую вы хотите принудительно выполнить... IE git checkout -f production   -  person Edward J Beckett    schedule 21.06.2012


Ответы (1)


Ладно... у меня похожая установка... твой файл исполняемый? Пожалуйста, проверьте атрибуты файлов...

ls -la post-receive

Если это не исполняемый файл, вам нужно его chmod ...

sudo chmod +x post-receive

ОБНОВИТЬ

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

git checkout -f production
person Edward J Beckett    schedule 20.06.2012
comment
Вот и все - я специально не проверял "производственную" ветку. Я очень доволен этой настройкой, очень простой для развертывания в моих средах разработки и производства. Большое спасибо! - person okyanet; 21.06.2012
comment
Вы знаете, почему появляется этот stdin: is not a tty? - person sites; 29.08.2016