Это должно быть очень просто запустить, но по какой-то причине он не будет работать с моим репозиторием 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
Так оно и работает, но опять же только когда я нажимаю с той же файловой системы Это не сработает, если я попытаюсь перейти в репозиторий с другой рабочей станции по сети.