Это должно быть очень просто запустить, но по какой-то причине это не будет работать с моим репозиторием Mercurial. Все, что я хочу, это чтобы удаленное репо автоматически запускало hg update
всякий раз, когда кто-то нажимает на него. Итак, у меня есть это в моем файле .hg/hgrc:
[hook]
changegroup = hg update
Просто, верно? Но по какой-то причине это никогда не выполняется. Я также попытался написать сценарий оболочки, который сделал это. .hg/hgrc выглядел так:
[hooks]
changegroup = /home/marc/bin/hg-update
и hg-update выглядело так:
#!/bin/sh
hg help >> /home/marc/works.txt;
hg update >> /home/marc/works.txt;
exit 0;
Но опять же, это не обновляется. Содержимое hg help
записывается в works.txt
, но ничего не записывается в hg update
. Есть ли что-то очевидное, что мне здесь не хватает? Это мучает меня уже несколько дней, и я просто не могу заставить его работать.
Обновить
Хорошо, еще раз, использование переключателя -v
в командной строке с моей рабочей станции, отправляющей в удаленное репо, не печатает никаких подробных сообщений, даже если у меня есть эти echo
строк в .hg/hgrc
. Однако, когда я делаю push из клона репо в той же файловой системе (я вошел в систему через SSH), я получаю следующее:
bash-3.00$ hg -v push ../test-repo/ pushing to ../test-repo/ searching for changes 1 changesets found running hook prechangegroup: echo "Remote repo is at `hg tip -q`" echo "Remote repo wdir is at `hg parents -q`" Remote repo is at 821:1f2656753c98 Remote repo wdir is at 821:1f2656753c98 adding changesets adding manifests adding file changes added 1 changesets with 1 changes to 1 files running hook changegroup: echo "Updating.... `hg update -v`" echo "Remote repo is at `hg tip -q`" echo "Remote repo wdir is at `hg parents -q`" Updating.... resolving manifests getting license.txt 1 files updated, 0 files merged, 0 files removed, 0 files unresolved Remote repo is at 822:389a6c7276c6 Remote repo wdir is at 822:389a6c7276c6
Так что это работает, но опять же только тогда, когда я нажимаю из той же файловой системы. Это не сработает, если я попытаюсь нажать на репозиторий с другой рабочей станции по сети.