2009-09-27 5 views
5

J'ai un projet qui combine plusieurs référentiels hg (différents composants) pour construire une seule application. Je suis à la recherche d'un outil multiplateforme pour soutenir une opération sur plusieurs repos en même temps (par exemple tag, pull, push, commit etc ...) Essentiellement, je suis à la recherche du script 'repo' que Google écrit pour Android, mais pour hg au lieu de git:Quelqu'un at-il un script pour gérer plusieurs référentiels hg à la fois?

http://source.android.com/download/using-repo

Je cherchai en cas de débordement de la pile et trouvé ceci:

mercurial windows batch file for pulling changes to multiple repositories

mais il est encore un manuel de bits et windows. Je sais que ce n'est pas difficile d'écrire le script soit pour passer une commande aux repos ou essayer d'encapsuler tout, mais pensé que cela pourrait être une chose commune alors peut-être que d'autres ont déjà une solution. Je suppose qu'une approche serait de porter le script repo à hg (trouver et remplacer git avec hg serait probablement assez loin pour les opérations simples).

Que font les autres dans cette situation?

Répondre

5

Regardez la nouvelle fonctionnalité des sous-dépôts (dans la version 1.3) dans Mercurial. Il vous permet d'avoir un référentiel global contenant d'autres dépôts. L'état du niveau supérieur inclut un fichier qui spécifie le hachage de la pointe des sous-dépôts, ce qui vous permet de spécifier un seul identifiant de noeud de hachage englobant l'état de tous les repos subordonnés.

https://www.mercurial-scm.org/wiki/subrepos

+0

Merci, je vais certainement garder un oeil dessus . Je ne pense pas que je serai capable de restructurer nos repos pour utiliser une fonctionnalité "expérimentale", alors je vais probablement investir les 10 minutes à pirater un script rapide. – Brian

+0

FWIW, les sous-dépôts sont très standard maintenant. –

1

Je suis dans un scénario similaire pour l'année écoulée, le travail quotidien avec un écart de projet sur 6 dépôts, et d'être le responsable de choses les plus ramification/fusion, etc.

À un certain moment, j'ai trouvé simple bash-script pour vérifier plusieurs repo SVN. Je l'ai adopté à Mercurial et l'ai étendu au fil du temps. En ce moment je ne peux pas me rappeler ou google la source originale du manuscrit, ainsi je ne peux malheureusement pas créditer l'auteur original (créditerai dans mon manuscrit si je trouve l'information plus tard).

Mon script « hgall » est publié sur GitHub à https://github.com/JKrag/hgall

Il est fait pour mon propre usage, et donc directement référence à quelques extensions que j'ai utilisé, mais cela peut facilement été édité sur. (ou n'utilisez simplement pas les commandes qui appellent les extensions que vous n'avez pas installées). Le script est documenté dans le README, y compris mon "tweak" personnel de l'avoir (par défaut) ignorer les repo qui commencent par le soulignement, comme je les utilise comme clones temporaires pour tester les opérations désordonnées (par exemple grandes fusions).

J'espère que ce script est utile pour certains d'entre vous - cela m'a beaucoup aidé au cours de la dernière année. Notre société vient de déménager chez Git, donc je ne ferai probablement pas beaucoup de mises à jour dans un futur proche, mais je pourrais éventuellement le porter à Git un jour ....

Questions connexes