Хук Mercurial Changeset существует со статусом -1 - PullRequest
2 голосов
/ 05 января 2011

Я использую Mercurial SCM по локальной сети, используя обычную общую папку вместо HTTP, и у меня возникла проблема с запуском ловушки автоматического обновления.

Я ввел эту ловушку как подробнов FAQ .Это устанавливает ловушку, но когда я помещаю что-то в удаленный репозиторий, я получаю сообщение об ошибке:

added 1 changesets with 1 changes to 1 files
running hook changegroup: hg update >&2
warning: changegroup hook exited with status -1

Существует другой вопрос stackoverflow , подобный этому, но он не предлагает никаких других решенийчем это может быть ошибка разрешений где-то.

Кто-нибудь еще имел эту проблему, и может кто-нибудь еще пролить свет на это или дать мне понять, где начать исправлять это?Спасибо.

1 Ответ

3 голосов
/ 05 января 2011

Является ли hg в вашем стандартном поиске PATH?

Замените вашу .hgrc конфигурацию пользовательским скриптом, например,

[hooks]
changegroup = /var/tmp/myscript.sh

[ui]
debug = true

(unix) В /var/tmp/myscript.sh напишите что-то вроде этого:

#!/bin/sh
set -e
echo ---------- >>/tmp/myscript.log
set >>/tmp/myscript.log
echo --- >>/tmp/myscript.log
pwd >>/tmp/myscript.log
hg update >>/tmp/myscript.log 2>&1

(unix) Не забудьте пометить как исполняемый файл: chmod a+x /var/tmp/myscript.sh

(windows) Соответствующий пакетный файл myscript.bat:

@echo off
echo ------ >>%TEMP%\myscript.log
set >>%TEMP%\myscript.log
echo --- >>%TEMP%\myscript.log
cd >>%TEMP%\myscript.log
hg update >>%TEMP%\myscript.log 2>&1

(windows) Конечно, строка в .hgrc равна changegroup = \your\directory\myscript.bat.

Запустите команду hg push, чтобы воспроизвести проблему.

Проверьте содержимое файла /tmp/myscript.log.

...