Mercurial ha la funzione Sottorepository che essenzialmente gestisce la configurazione degli altri repository . È estremamente semplice da configurare.
Tutto ciò che devi fare è creare il file .hgsub in questo modo:
src/app = https://bitbucket.org/<user>/app
src/framework = https://bitbucket.org/<user>/framework
src/library = https://bitbucket.org/<user>/library
Un repository per riga, percorso a sinistra, URL a destra. Quando ti impegni, Mercurial preleverà quei repository e ti chiederà le credenziali. Dopodiché, e ogni volta che esegui il commit, il file .hgsubstate cambierà automaticamente in base agli stati dei tuoi sottorepos (revisione, diramazione o qualsiasi altra cosa hai selezionato in ciascuno di essi).
27442cb5903128c6f817e2943030b9297a0d569f src/app
4d11fabc8a6121ceb07e11ddd81fb1e4ad2f5980 src/framework
8d6f570174a535839c189cf84d04f5ae5253a253 src/library
Il lato sinistro rappresenta l'hash, il lato destro il percorso del repository. Questo file è in versione, ma come ho detto prima, viene modificato automaticamente da mercurial.
Quindi, se esegui un commit su src / app, l'hash cambierà. Quando si è soddisfatti della combinazione di stati in ciascun sottorepo, si commette il repository padre. * BLAM! * , hai gestione della configurazione .
Modifica : ho appena scoperto l'estensione Hg Guest Repo e penso che sia proprio quello che bisogno, citando:
Extension for enterprises needing to handle modules and components
Hg subrepos do not handle the sharing of components well, due to
the recursive merge from the top (super) repo and requirement to
lock at a specific version.
Guestrepo's goal is to overcome these limitations.
The guestrepo extension does not change any existing Mercurial
behavior. It only adds new commands.