Come ramificarsi con TortoiseHG


218

Ho scaricato TortoiseHg 1.0 per la valutazione. Per la mia vita non riesco a capire come fare un ramo. Sembra capire i rami (ad es. Nel suo browser repository) ma non riesco proprio a trovare un modo per creare un ramo. Sembra una capacità così fondamentale poiché tra i vantaggi spesso propagandati del DVC c'è la ramificazione leggera.

Ho cercato su Google e non sono riuscito a trovare molte discussioni su questo argomento (almeno per le versioni recenti), quindi devo presumere che mi manchi qualcosa, giusto?

Aggiornamento: Così ho segnalato la risposta di Chad Birch qui sotto per rispondere al problema "nuovo ramo". Come sottolinea correttamente, fai un commit e quindi fai clic sul pulsante di diramazione per visualizzare la finestra di dialogo di manutenzione dei rami in cui è possibile creare nuovi rami. Vorrei che ci avessero dato un'opzione di menu contestuale per questo. Una volta che ti sei ramificato, la prossima domanda naturale è come unire e anche questo non è ovvio. Si scopre che l'opzione è sepolta nell'esploratore del repository. Devi selezionare la testa di un altro ramo, fare clic con il tasto destro e quindi selezionare "Unisci con ...".


La ramificazione è seriamente sepolta in un aspetto del tutto non intuitivo del flusso di lavoro. La ramificazione e il commit sono due operazioni ben distinte e non ha senso seppellire la branch in profondità nell'interfaccia utente del commit. Dato che in genere eseguo il commit prima della diramazione, non mi è sembrato di guardare sotto l'interfaccia utente del commit. Le filiali non sono ancora documentate in modo efficace fino a metà 2016 ; Chad Birch sottolinea ciò che passa per la documentazione ramificata; è ancora orribile, ma come nota, è solo il messaggero ...
acceso il

Risposte:


213

Come mostrato nei documenti , tutto ciò che dovresti fare è semplicemente fare clic sul branch: defaultpulsante nella parte superiore della finestra di dialogo di commit e passare a un nuovo nome di ramo.


30
Ah, vedo dove si dice "premendo questo pulsante si apre una finestra di dialogo per la manutenzione delle filiali". Ciò apre effettivamente una finestra di dialogo che, a quanto pare, consente la creazione di rami, ma rimango in discussione con l'affermazione "Come mostrato nei documenti" poiché non vi è alcuna menzione esplicita di come creare un ramo ovunque in quella pagina che Ho potuto trovare. Mi chiedo che cosa ha fatto la ramificazione per meritare un trattamento di seconda classe in TortoiseHg (rispetto agli altri strumenti Tortoise * in cui si tratta di un'opzione del menu contestuale di prima classe). :-)
Michael Tiller

31
Oh, non stavo cercando di insultare in un modo "RTFM" o qualcosa del genere, avevo solo bisogno di una sorta di frase con cui collegarmi alla pagina pertinente. Forse "come vagamente implicito nei documenti" sarebbe stato più appropriato in questa situazione.
Chad Birch,

1
Senza sudore. Non stavo nemmeno provando ad insultare. Volevo solo chiarire a tutti coloro che sono venuti a vedere quel link che devi davvero leggere tra le righe nei documenti per ottenere la risposta dal momento che non è esplicitamente menzionato.
Michael Tiller,

8
Con le versioni recenti di Mercurial è necessario eseguire un hg push --new-branchpush per un nuovo ramo in un repository remoto. Vedi stackoverflow.com/questions/2365483 per come fare in TortoiseHg.
Peter Graham,

26

Per iniziare una nuova filiale con TortoiseHg premi Commit ... quindi, sopra il messaggio Commit premi Branch, quindi "Apri un nuovo ramo con nome:"


9

Volevo solo aggiungere che per spingere il nuovo ramo nel repository remoto c'è una casella di controllo nella scheda Sincronizza in Opzioni di "Consenti il ​​push di un nuovo ramo" - devi ricordarti di spegnerlo di nuovo subito dopo.


8

Il più delle volte in Mercurial, sei cloneil repository per creare un ramo.

È quindi possibile unire i repository separati una volta apportate le modifiche e gli commit.

Questo potrebbe sembrare che occuperebbe molto spazio su disco ma sulla maggior parte dei sistemi operativi, mercurial realizzerà hardlink invece di copiare i file. Ad ogni modo, lo spazio su disco è normalmente economico e poiché è locale è piuttosto veloce.

Se ci pensate, ogni "checkout" (nella terminologia svn) o "clone" (nella terminologia mercuriale) è in realtà un ramo che probabilmente verrà riunito, quindi ha molto senso che i cloni siano il modo comune di creare rami.


11
Non è conveniente per i rami delle caratteristiche.
Torre

Concordato. Se hai rami di lunga durata (semi-permanenti), come un ramo stabile versione 1 e un ramo stabile versione 2, ti consigliamo di utilizzare i rami denominati . Vedi anche la documentazione del ramo commerciale .
Blokeley,

11
-1. Questo è nella migliore delle ipotesi un trucco. La clonazione per diramazione non funziona affatto se si sta seguendo un repository remoto, poiché non è possibile inviare le modifiche locali. Ciò significa che non puoi condividere la tua filiale con altri sviluppatori con cui lavori. Il modo corretto di diramare è creare un ramo denominato all'interno del repository.
Peter Graham,

8
La clonazione è ancora il modo in cui il libro ufficiale mercuriale raccomanda i rami 'big picture' hgbook.red-bean.com/read/… Non sparare al messaggero.
Blokeley,

0

Prima di impegnarti, fai clic sul pulsante Ramo (vedi immagine), quindi seleziona un ramo o creane uno nuovo (digitando dove selezioni i rami).

Vedi l'immagine qui

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.