Supporto del flusso di lavoro "Party on my branch" in mercurial

2

Quando sono su un progetto git, ho un flusso di lavoro che va in questo modo:

  1. Avvia una nuova funzione (apri una nuova diramazione)
  2. Scrivi del codice, commetti un codice, ripeti
  3. Spingi il codice su un telecomando, possibilmente con le mie iniziali nel nome del ramo, e "WIP" si impegna, indicando che è incompleto
  4. Una volta che le cose iniziano a prendere forma, la zucca si impegna insieme, cambia i loro messaggi, li cancella, li riordina, ecc.
  5. Continua a lavorare
  6. Decidi che le cose sono pronte per la revisione, invia una richiesta di pull / merge (probabilmente dopo aver forzato il push per distruggere il mio vecchio, work-in-progress, branch)
  7. Leggi alcune revisioni, inserisci più modifiche che provengono da quella recensione in cima
  8. Richiedi l'approvazione per unire il ramo
  9. Unisci il ramo. Credi nella bellissima storia della funzione è che ho appena unito, ma non riscrivo mai la storia sul ramo principale / predefinito (a meno che non sia l'unico sul progetto)

Questo flusso di lavoro è supportato in mercurial? Che ne dici di senza plugin? Sono abbastanza nuovo al mercurial, ma ne so abbastanza (e mi baso su questo cheatsheet sufficiente) per ottenere ciò che io voglio finire. Tuttavia non sono in grado di utilizzare questo flusso di lavoro. C'è molta cura nel crafting del commit perfetto, e semplicemente accumulando cose su di esso perché altrimenti mi sembra di ricevere messaggi di errore. Questo sembra essere di progettazione, ma preferirei usare il mio flusso di lavoro per le mie filiali .. e quindi conformarmi al tipo di gestione della cronologia (ad es. Unione / ribbasso / nessuna riscrittura) per i rami su cui lavorano molte persone.

    
posta Johnson 22.07.2015 - 01:10
fonte

2 risposte

2
  1. Se escludi p.3 dal tuo flusso di lavoro (non riesci a vedere strong ragionamento per questa operazione) e modifica leggermente il relativo p.6, puoi migrare il ciclo completo a Mercurial "così com'è"
  2. Anche se MQ ha indicato come "funzione di ultima istanza", può essere strumento utile (probabilmente associato con l'estensione MQCollab) per il tuo WIP "deve essere condiviso" (è necessario che sia condiviso anche in stato caotico sporco?!)
  3. Manipolare la cronologia per i changeset non pubblicati è un'operazione molto semplice in Mercurial (almeno non più difficile e non più debole di quella di Git)
risposta data 05.08.2015 - 13:13
fonte
1

In primo luogo, lavorerai molto probabilmente sul ramo predefinito.

Puoi creare un segnalibro per il tuo "ramo"

Puoi inviare quel segnalibro a un altro repository. Le persone possono guardarlo.

Quando sei pronto per riscrivere la cronologia, utilizzerai l'estensione MQ.

Puoi salvare tutte le modifiche che vuoi riscrivere, cambiare le loro note di commit, schiacciarle insieme e poi riapplicarle.

Al termine, elimina il segnalibro dal telecomando e crea un nuovo segnalibro

Sfortunatamente questo lascerà una testa ciondolante, dovrai eseguire un comando strip sul tuo locale e remoto e su qualsiasi repository che ha tirato nel tuo "ramo" per sbarazzarti del vecchio "ramo"

Quando sei pronto per unire spinga il tuo segnalibro e chiedi che venga unito al capo principale del ramo predefinito.

È un flusso di lavoro davvero imbarazzante per HG perché crea molte teste che richiedono lo stripping.

    
risposta data 22.07.2015 - 07:45
fonte

Leggi altre domande sui tag