2010-12-28 10 views
37

Abbiamo un repository con tre rami nominati, volevo clonare uno dei rami. C'è un comando mercuriale per farlo? Se fornisco il percorso (del ramo) con hg clone ottengo 404 errori.Clone mercuriale da un ramo

risposta

86

hg clone http://your/repo -r branchname dovrebbe fare il trucco.

+0

Grazie molto molto Benjamin Pollack – Maximosaic

+0

Esiste un modo per clonare il codice da quel ramo da una particolare revisione alla punta di quel branch..I provato hg clone https: //[email protected]/ TEAM/REPO -r BRANCH_NAME --startrev REVISION_NUMBER; ma restituisce un errore "hg clone: ​​opzione --startrev non riconosciuto " –

13

Benjamin ha ragione. Ma è davvero quello che vuoi fare? In particolare, riceverai solo i changeset necessari per creare quel ramo, e nient'altro - e questo, ad esempio, ti impedirebbe di estrarre i changeset dal trunk o da altri rami. Potresti stare meglio solo clonando l'intero repository e poi semplicemente lavorando nel ramo che ti interessa; questo ti permetterà di mantenere il tuo repository in sincrono con quello che stai tirando da più facilmente.

+0

in pratica ho sempre lavorato su Subversion, sarei molto grato se potessi indicarmi una risorsa che lo spiega un po 'di più poiché la maggior parte delle risorse parla solo di COME fare in hg. – Abidi

+3

Sto facendo da sola quella transizione. Il cambiamento fondamentale che devi fare è che non stai più lavorando su una copia locale con Mercurial. Quello che hai è un repository, proprio come quello da cui stai clonando. Quando esegui 'hg pull', stai effettivamente aggiornando il tuo repository con le modifiche registrate nell'upstream; quando premi "hg push", stai spingendo le tue modifiche a questo. Tutto il 'hg update' fa è far sì che i file nella directory riflettano lo stato del repository per qualsiasi revisione o tag branch o qualsiasi cosa tu selezioni. – jmaynard

+0

Un motivo per farlo è che si utilizza Mercurial solo unidirezionale, per distribuire le modifiche su un server, ad esempio. In quel caso davvero * non * vuoi che i rami non di produzione vengano copiati. –

3

So che questo post è molto vecchio, ma ho avuto la stessa domanda. Ho trovato questo trucco:

hg clone /path/to/your/repo -r 0 
hg pull -u -b branchname 
+0

Si potrebbe voler dire quali sono le differenze quando si utilizza questo. Apparentemente ci sono sottili cambiamenti dietro le quinte. –

9

hg clone <URL> -b BRANCHNAME clone unico ramo, come richiesto

2

sto usando Mercurial-4.0.2. In questo possiamo specificare il nome del ramo aggiungendo il nome del ramo con un simbolo # nell'URL clone.

ad es.

hg clone https://[email protected]/my_product#MY_BRANCH 

hg clone --verbose https://[email protected]/my_product#MY_BRANCH "C:\myCode" 
+1

Funziona perfettamente! –

Problemi correlati