Domanda

Ho creato uno specchio Mercurial di un repository SVN (usando questo tutorial: http://oreilly.com/opensource/excerpts/opensource-mercurial/migrating-to-mercurial.html ). La sincronizzazione funziona alla grande, ad eccezione ho notato che non è far salire un repository esterno che viene fatto riferimento nel SVN principale repo ...

mi piacerebbe idealmente piace essere in grado di tirare tutto come un unico repository in Mercurial (insieme a gruppi di modifiche se possibile).

Quello che non sono sicuro di è:? È la limitazione esterna mancante del svnsync, o di una limitazione di hg convert

C'è un modo per forzare la esterno per essere sincronizzati e, nello stesso repository Mercurial?


Sto pensando una buona soluzione potrebbe essere quella di impostare il processo di sincronizzazione tutto da capo, per l'esterno. Creare una forchetta dello specchio hg corrente e sincronizzare l'esterno nella forcella specchio hg.

Il problema con questo è, tronco del esterno è destinato ad andare in una sottocartella del primo specchio, così come posso replicare che con convert? Dubito Potrei dire convertito al l'importazione in una sottocartella ...

È stato utile?

Soluzione

  

è una limitazione esterna mancante di svnsync o una limitazione di hg convert?

svnsync viene utilizzato per creare un mirror di un repository SVN. Ciò include qualsiasi svn:externals proprietà. Quindi deve essere una limitazione di hg convert.

Si noti che non si ha realmente bisogno di creare uno specchio con svnsync. L'articolo raccomanda questo solo perché avere una copia locale potrebbe accelerare il processo di conversione.

  

C'è un modo per forzare la esterno per essere sincronizzati e, nello stesso repository Mercurial?

E 'comune per un repository SVN di contenere più progetti vagamente correlati, ognuno con le proprie filiali e tag. Ma Mercurial non funziona in questo modo: quando si ramo, si ramo tutto ciò che è nel repository. Si dovrebbe creare un repository Mercurial separato per ogni progetto in SVN che ha le sue tronco / rami / tag. Questo approccio diverso è probabilmente il motivo per cui hg convert ignora gli esterni, anche se sono nello stesso repository SVN.

C'è un equivalente di svn:externals in mercuriale; Si chiama "subrepositories". Invece di avere una o più proprietà svn:externals, si dispone di un singolo file .hgsub con contenuti simili nella root del vostro progetto. Si dovrebbe prima trasformare ogni progetto SVN ad un repository Mercurial separato, e poi collegarli con subrepositories. Vedere la href="http://mercurial.selenic.com/wiki/Subrepository" rel="nofollow"> mercuriale pagina per maggiori dettagli.

scroll top