пост-получение: нет такого файла или каталога

Я получаю сообщение об ошибке при попытке отправки на удаленный экземпляр Amazon EC2 (Ubuntu Linux). Я дал всем связанным каталогам и файлам полные разрешения. Я пытаюсь использовать ловушку пост-получения, чтобы переместить проект в мой производственный каталог по адресу /var/www/myapp:

$ git push prod-server master

Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 292 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: error: cannot run hooks/post-receive: No such file or directory
To prod-server:/home/ubuntu/myapp/myapp.git
   8944048..a445d1d  master -> master

Мой файл пост-получения (находится в пустом хранилище: /home/ubuntu/myapp/myapp.git/hooks/):

#!/bin/bash
while read oldrev newrev ref
do
  branch=`echo $ref | cut -d/ -f3`
  if [ "prod-server" == "$branch" -o "master" == "$branch" ]; then
    git --work-tree=/var/www/myapp/ checkout -f $branch
    echo 'Changes pushed to Amazon EC2 PROD-SERVER directory!'
  fi
  if [ "test" == "$branch" ]; then
    git --work-tree=/var/www/myapp/test/ checkout -f $branch
    echo 'Changes pushed to Amazon EC2 PROD-SERVER test directory!'
  fi
done
2
задан 21 September 2014 в 07:03

1 ответ

Похоже, что проблема с post-receive сценарий, не находящийся в правильном месте. Каков вывод git remote -v в локальном репозитории и ls -l /home/ubuntu/myapp/myapp.git/hooks на сервере?

Некоторые подсказки для самого сценария:

  • Использование Больше Quotesв „ў
  • Bash (и оболочки POSIX) использует сингл, равняется, расписываются [
  • -o, , удержал от использования ; необходимо вместо этого использовать [ foo = bar ] || [ baz = ban ]
  • Использование set -o errexit для выхода из сценария в первой ошибке; это должно сделать отлаживающим намного легче
  • Использование set -o xtrace и exec > /tmp/post-receive.log 2>&1, чтобы (временно) получить журнал отладки того, что делает сценарий.
0
ответ дан 21 September 2014 в 07:03
  • 1
    Извините, система won' t позволяют мне добавить другой ответ, но после того, как Вы сделали th – Edgar Naser 29 January 2016 в 00:34

Другие вопросы по тегам:

Похожие вопросы: