2009-10-15 13 views
23

Ho usato il comando 'hg convert' per provare a spostare il mio repository SVN in hg, e sembra funzionare (richiede un po 'di tempo e stampa tutti i messaggi di commit man mano che va), ma alla fine la directory Mercurial risultante è vuota. Ha la sottodirectory nascosta .hg al suo interno, ed è circa 200 MB, quindi è successo SOMETHING, ma nessuno dei file ci sono.Archivio vuoto dopo sovversione -> conversione mercuriale

Qualche idea?

L'unica cosa che posso pensare a come essere coinvolti è che invece di avere tronco di alto livello, brankes, Tag directory, abbiamo molti progetti, ognuno con le proprie tronco, i rami, i tag:


svn-repository/ 
    Project1/ 
     trunk/ 
     branches/ 
     tags/ 
    Project2/ 
     trunk/ 
     branches/ 
     tags/ 

ecc ...

Potrebbe causare il problema? La mia comprensione è che SVN non si preoccupa veramente di come si organizza il repository, ma Mercurial?

+0

Heh, ho messo in discussione la domanda da quando ci sono stato e l'ho fatto! – MattGWagner

risposta

29

È necessario eseguire hg update per ottenere una copia funzionante.

(Tali repository mercuriali senza una copia di lavoro possono essere utilizzati come punti di comunicazione puri dove le revisioni vengono spinte o tirate da, proprio come un server di subversion.In questo caso è stato creato da hg convert, ma è anche possibile creare tali repository con hg clone --noupdate o hg update null. omettendo il file della copia di lavoro consente di risparmiare un pò di spazio.)

Inoltre, vi consiglio di convertire ogni progetto separatamente. Se si specifica l'URL per "project1", hg convert rileva automaticamente le sottocartelle trunk, branches e tags e fa la cosa giusta.

In mercuriale, i rami sono concetti di prima classe piuttosto che solo cartelle che sono state copiate dal trunk. I rami non vivono in nessuna posizione visibile all'utente come in svn. Avere più progetti (ciascuno con le proprie diramazioni) in un singolo repository mercuriale non ha molto senso.

+0

Ah, certo, non posso credere di non averlo provato. Mi sto ancora abituando alla differenza tra push/pull e commit/update. Se posso chiedere un seguito: perché raccomandi di suddividere i progetti in diversi repository? Il motivo per cui sono raggruppati ora è perché molti dei progetti sono modulari e vengono utilizzati in combinazioni diverse, ma vogliamo comunque poterli ramificare. Questa struttura organizzativa è qualcosa di cui lamentarsi Mercurial? –

+0

@hvjackson: in subversion, è possibile unire le modifiche tra cartelle con un percorso diverso ma un antenato comune. Mercurial funziona in modo molto diverso: l'unione è una revisione che ha due revisioni principali. Se replichi il modo di fare la sovversione di fare cose, non sarai in grado di unire correttamente. Ciò può sembrare confuso: ti raccomando di lavorare attraverso il tutorial di hg: http://mercurial.selenic.com/wiki/Tutorial –

+0

Oppure dai un'occhiata a http://mercurial.selenic.com/wiki/Merge –

Problemi correlati