Frage

Ich bin mit Mercurial SCM über einen LAN einen normalen freigegebenen Ordner anstelle von HTTP und ich habe ein Problem mit dem Auto-Update-Haken zu laufen zu bekommen.

Ich habe diesen Haken als in der FAQ detailliert beschrieben. Dies installiert den Haken, aber wenn ich etwas zu der Remote-Repository schieben, ich erhalte eine Fehlermeldung:

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

Es gibt ähnlich wie diese href="https://stackoverflow.com/questions/2885246/mercurial-auto-update-problem">, aber es bietet keine anderen Lösungen als kann ein Berechtigungsfehler irgendwo sein.

Hat jemand dieses Problem und kann jemand mehr Licht in diesen hat oder geben Sie mir ein Heads-up auf, wo diese Fixierung beginnen? Danke.

War es hilfreich?

Lösung

Ist hg in Ihrem Standard-Suchpfad?

Ersetzen Sie Ihre .hgrc Konfiguration mit einem benutzerdefinierten Skript, z.

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

[ui]
debug = true

(UNIX) In der /var/tmp/myscript.sh etwas schreiben wie folgt aus:

#!/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) Vergessen Sie nicht als ausführbar zu markieren: chmod a+x /var/tmp/myscript.sh

(Windows) Die entsprechende Batch-Datei myscript.bat ist:

@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

(Fenster) Natürlich ist die Linie in .hgrc ist changegroup = \your\directory\myscript.bat.

Führen Sie Ihren hg push Befehl, um das Problem zu reproduzieren.

Überprüfen Sie den Inhalt der /tmp/myscript.log Datei.

scroll top