Comment puis-je append des référentiels distants dans Mercurial?

Je travaille avec les repositorys Git de la manière suivante:

  • J’ai le référentiel maître et plusieurs télécommandes sur les différentes machines de production.
  • Je transmets le code de production aux télécommandes et redémarre les services pour que les modifications prennent effet.

Je suis sur le sharepoint passer de Git à Mercurial et j’aimerais savoir comment je peux réaliser quelque chose comme ça.

Vous ajoutez des entrées à la section [paths] du fichier .hg/hgrc de votre clone local. Voici un exemple de section qui irait dans le fichier .hg/hgrc :

 [paths] remote1 = http://path/to/remote1 remote2 = http://path/to/remote2 

Vous pouvez ensuite utiliser des commandes telles que hg push remote1 pour envoyer des modifications à ce repository. Si vous souhaitez que la mise à jour de la mise à jour à distance soit un répertoire de travail, vous devez placer un crochet de groupe de changegroup sur cet emplacement distant qui effectue une mise à jour. Cela ressemblerait à quelque chose comme:

 [hooks] changegroup = hg update 2>&1 > /dev/null && path/to/script/restart-server.sh 

Tout le monde n’est pas un grand fan de la mise à jour automatique de ses répertoires de travail sur Push, et ce n’est certainement pas le cas par défaut.

Vous pourriez jeter un oeil au plug – in GitHub hg-git :

idée générale hg-git

ajout de la possibilité de pousser et de tirer depuis un référentiel de serveur Git de Mercurial.
Cela signifie que vous pouvez collaborer sur des projets basés sur Git à partir de Mercurial ou utiliser un serveur Git comme sharepoint collaboration pour une équipe avec des développeurs utilisant à la fois Git et Mercurial.

Note: Je n’ai pas testé cet outil avec les dernières versions de Mercurial.

Si vous voulez append un chemin par défaut, vous devez travailler avec le fichier ~project/.hg/hgrc . Comme suit:

 [paths] default = https://path/to/your/repo 

Bonne chance.

Si vous êtes sur Unix et que vous avez installé Git, vous pouvez utiliser cette fonction bash pour append facilement un chemin vers les télécommandes sans éditeur de texte:

 add-hg-path() { git config -f $(hg root)/.hg/hgrc --add paths.$1 $2 awk '{$1=$1}1' $(hg root)/.hg/hgrc > /tmp/hgrc.tmp mv /tmp/hgrc.tmp $(hg root)/.hg/hgrc } 

Puis invoquez-le avec:

 $ add-hg-path remote1 https://path.to/remote1 

Si quelqu’un souhaite construire un équivalent Powershell, j’aimerais également l’inclure. Parmi les autres améliorations possibles, citons la vérification des erreurs sur les parameters et la $(hg root) l’appel à $(hg root) .