2009-09-27 13 views
5

Ho un progetto che combina più repository hg (diversi componenti) per creare una singola applicazione. Sto cercando uno strumento multipiattaforma per supportare l'esecuzione di un'operazione su più reposli contemporaneamente (ad esempio tag, pull, push, commit ecc ...) Essenzialmente, sto cercando lo script 'repo' che Google scritto per Android, ma per hg invece di git:Qualcuno ha uno script per gestire più repository hg contemporaneamente?

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

ho cercato su stack overflow ed ho trovato questo:

mercurial windows batch file for pulling changes to multiple repositories

ma è ancora un manuale bit e solo le finestre. So che non è che è difficile scrivere lo script per passare un comando al repository o provare a racchiudere tutto, ma ho pensato che potrebbe essere una cosa comune, quindi forse altri hanno già una soluzione. Suppongo che un approccio sarebbe quello di portare lo script repo in hg (trovare e sostituire git con hg probabilmente andrebbe piuttosto lontano per operazioni semplici).

Cosa fanno gli altri in questa situazione?

risposta

5

Guardare in modo definitivo alla nuova (in versione 1.3) funzionalità di sottoreposizione in Mercurial. Ti consente di avere un repository generale che contiene altri repository. Lo stato del livello superiore include un file che specifica l'hash della punta del repository secondario, in modo da poter specificare efficacemente un singolo ID del nodo hash che comprende lo stato di tutti i repository subordinati.

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

+0

Grazie, lo terrò sicuramente d'occhio . Non credo che sarò in grado di ristrutturare i nostri repository per utilizzare ancora una funzione "sperimentale", quindi probabilmente investirò i 10 minuti nell'hacking insieme a uno script veloce. – Brian

+0

FWIW, i sottorepos sono ora di uso molto standard. –

1

Sono stato in uno scenario simile per l'anno passato, lavorando ogni giorno con uno spread di progetto su 6 repository, e di essere l'unico responsabile per la maggior parte ramificazione/fusione roba ecc

Ad un certo punto ho trovato un semplice bash-script per il controllo di più repository SVN. Lo adotterò a Mercurial e l'ho esteso nel tempo. In questo momento non riesco a ricordare o google la fonte originale della sceneggiatura, quindi sfortunatamente non posso attribuire il merito all'autore originale (accrediterò il mio script se trovo le informazioni più tardi).

Il mio script "hgall" è pubblicato su GitHub a https://github.com/JKrag/hgall

È fatto per mio uso, e quindi direttamente riferimento a un paio di estensioni che ho utilizzato, ma questo può stato facilmente modificato fuori. (o semplicemente non usare i comandi che chiamano le estensioni che non hai installato).

Lo script è documentato nel README, incluso il mio personale "tweak" di averlo (di default) ignori repo che iniziano con underscore, poiché li uso come cloni temporanei per testare operazioni disordinate (ad esempio grandi fusioni).

Spero che questo script sia utile per alcuni di voi, mi è stato di grande aiuto nell'ultimo anno. La nostra azienda si è appena trasferita a Git, quindi probabilmente non farò molti aggiornamenti nel prossimo futuro, ma forse lo porterò su Git un giorno ....

Problemi correlati