Git push over HTTP не активирует удаленные хуки - PullRequest
6 голосов
/ 07 декабря 2010

На моем удаленном компьютере я инициализировал пустой git-репозиторий.В каталоге ловушек я инициализировал ловушки post-receive, post-update и update с помощью следующего скрипта:

#!/bin/bash
echo $0 $@ >> /tmp/githooks.log

В моем локальном ящике я клонировал репозиторий, добавил тестовый файл, зафиксировал его и перенес изменение обратно в удаленный ящик.

$ git clone https://remote/git/sandbox.git sandbox
$ cd sandbox
$ touch asdf
$ git add asdf
$ git commit -a
[master (root-commit) 37505de] zxcv
 0 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 asdf
$ git push origin master
Fetching remote heads...
  refs/
  refs/heads/
  refs/tags/
updating 'refs/heads/master'
  from 0000000000000000000000000000000000000000
  to   37505de9c22b0aee84e0071190f4f58728770675
    sending 3 objects
    done
Updating remote server info
To https://remote/git/sandbox.git
 * [new branch]      master -> master

Однако на удаленном компьютере файл /tmp/githooks.log пуст.Однако, если я клонирую репозиторий на удаленном компьютере, ловушки успешно вызываются.

Не работают ли ловушки git с http-push?

1 Ответ

8 голосов
/ 07 декабря 2010

С протоколами Git , у вас будут включены различные функции.
Для HTTP этот поток обобщает проблему:

«Проблема» здесь (которая очень похожа на HTTP-протокол) состоит в том, что это не git , который обновляет репозиторий на удаленной стороне при нажатии (который знает о хуках) , но веб-сервер через WebDAV .
А веб-сервер ничего не знает о хуках.

Возможно, это улучшится, когда будет реализован «умный» протокол HTTP (в данный момент, на мой взгляд, сразу после разработки протокола).

Как вы прокомментировали, smart http будет ответом.

alt text

Эта функция называется «умный» HTTP против «тупого» HTTP, поскольку для этого требуется, чтобы на сервере был установлен двоичный файл Git, где для предыдущего заклинания HTTP-передачи требовался только простой веб-сервер.
Он ведет настоящий разговор с клиентом, а не просто тупо выталкивает данные.

...