Crochet de mercuriel ChangeSet existe avec le statut -1
-
25-09-2019 - |
Question
J'utilise Mercurial SCM sur un réseau local en utilisant un dossier partagé normal au lieu de HTTP et je vais avoir un problème obtenir le crochet de mise à jour automatique pour exécuter.
Je suis entré dans ce crochet comme détaillé dans la FAQ . Cela installe le crochet, mais quand je pousse quelque chose au dépôt distant, je reçois une erreur:
added 1 changesets with 1 changes to 1 files
running hook changegroup: hg update >&2
warning: changegroup hook exited with status -1
Il est autre question stackoverflow semblable à cela, mais il ne propose aucune solution autre que ce peut être une erreur quelque part des autorisations.
Quelqu'un at-il eu ce problème et peut quelqu'un d'autre jeter plus de lumière sur ce ou me donner une tête sur l'endroit où commencer à réparer cela? Merci.
La solution
est hg
dans votre chemin de recherche standard?
Remplacez votre configuration .hgrc
avec un script personnalisé, par exemple.
[hooks]
changegroup = /var/tmp/myscript.sh
[ui]
debug = true
(unix) Dans quelque chose /var/tmp/myscript.sh
d'écriture comme ceci:
#!/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) Ne pas oublier de marquer comme exécutable: chmod a+x /var/tmp/myscript.sh
(fenêtres) Le fichier de commandes correspondant myscript.bat
est:
@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
(fenêtres) Bien sûr, la ligne .hgrc
est changegroup = \your\directory\myscript.bat
.
Exécuter votre commande hg push
pour reproduire le problème.
Vérifiez le contenu du fichier /tmp/myscript.log
.