2010-05-01 13 views
13

Sono nuovo di Mercurial e sto cercando di capire se potrebbe sostituire SVN. Tutti quelli con cui lavoro hanno utilizzato SVN, CVS e VSS (shiver), quindi questo potrebbe essere un grande cambiamento. Sono stato molto interessato dopo aver letto sulla sua fusione e capacità di ramo, ma ho alcune riserve.Come configurare al meglio un repository centrale/più repository centralizzati per Mercurial?

Attualmente siamo su SVN e disponiamo di un repository centrale. Dalla mia lettura, sembra che non ci sia un unico repository centrale per tutti i progetti quando si usa Mercurial. NOTA: consideriamo ogni progetto un set logico separato di codice o una soluzione di Visual Studio. Funziona da solo.

Abbiamo circa 60 progetti separati nel nostro unico repository SVN centrale. Dopo aver letto su Mercurial, mi sembra di dover creare 60 repository centrali separati per ognuno di questi progetti sul server. DOMANDA N. 1: Devo creare un singolo repository per ogni progetto?

Se sì, allora sono preoccupato per la configurazione e l'hosting di 60 server Mercurial centrali separati. Ho iniziato a pensare di poter configurare un file, ma sembra che ogni repository debba essere configurato singolarmente utilizzando il file "C: ... \ MyRepository.hg \ hgrc" (installazione di Windows). Sembra anche che devo eseguire 60 server (> hg serve), assumerei su porte diverse. DOMANDA N. 2: Se la risposta alla domanda 1 è affermativa, dovrebbe esserci un singolo repository centrale per ciascun progetto, quindi in che modo le persone hanno gestito molti repository multipli?

Infine, non ho guardato nello spostare tutta la cronologia e le modifiche da un repository SVN a un gruppo di repository Mercurial separati, ma apprezzerei qualsiasi commento da parte di qualcuno che ha fatto questo (o se è addirittura possibile).

risposta

11

Mercurial supporta "repository centrali" bene, ma li fa per convenzione anziché per fiat.

È necessario eseguire solo un singolo server per eseguire tutti i sessanta repository e non si utilizzerà hg serve per esso. Invece scegli uno dei metodi di qualità di produzione da among the publishing options. Probabilmente eseguirai hgwebdir dietro Apache, Nginx o IIS a seconda delle tue preferenze.

Una volta eseguito è possibile creare nuovi reps con hg init o hg clone all'interno della directory dei repository. In un precedente datore di lavoro disponevamo di cinque prodotti, con un repository "centrale" per ciascuno e da dieci a venti cloni di ciascuno per vari team e funzioni, tutti eseguiti su un unico server. Il repository centrale determina "ciò che è ufficiale", ma troverete repository improvvisi per le funzioni non ufficiali che spuntano continuamente.

hg serve è per due sviluppatori che distribuiscono alcuni changeset in fretta, ma i repository pubblicati richiedono un po 'più di impalcature.

6

Si creerà 1 repository centrale per progetto. Se fossi in te, penserei all'hosting tramite Kiln. Include strumenti di revisione molto buoni e un'interfaccia Web su Mercurial con archivi e archivi illimitati. Si prendono cura di tutti i brutti pezzi di hosting e backup per te. Raccomanderei anche lo Joel's Mercurial tutorial.

0

Nel modo più semplice, sono necessari 60 "repository" centrali, che possono essere serviti utilizzando un contenuto di contenuto/server web. Ogni repository può essere trattato come una directory con un percorso dalla radice del contenitore del server.

Pensa a bitbucket o github.Servono migliaia di repository sotto un server (o più probabilmente una server farm), ma sono indipendenti l'uno dall'altro, a differenza di SVN dove tutto è sotto un unico repository gigante e condivide gli incrementi di revisione.

2

Se stai cercando qualcosa di autonomo, dai uno sguardo allo http://rhodecode.org è molto più potente di hgweb puro. È come un piccolo bitbucket appena ospitato.

Problemi correlati