Dopo aver usato quotidianamente mercurial per oltre un anno, stiamo per trovare un flusso di lavoro migliore per il nostro DVCS. Ispirato da successo con un modello di branching Git stiamo per allontanarci dal nostro "lavoro giornaliero push" nel master repo e sborsare rami di rilascio a intervalli regolari "workflow into" lavorare su rami di feature separati e riunire le feature finite nel master ".
Ad ogni modo, il problema che ho avuto con la ramificazione e l'unione in mercurial (ramo usando clone) è l'effettivo processo di unione. Non ho alcun problema con le unioni che generano ulteriori changeset, il problema che ho è che di solito genera enormi changeset che contengono più modifiche rispetto al changeset originale + merges. Il changeset di fusione contiene anche changeset di altre teste pure.
Quindi mi sono reso conto di recente che quando eseguiamo il pull dal master repo, quindi l'aggiornamento / fusione e infine il push, creiamo questi grandi set di modifiche non necessari.
Quello che dovremmo fare è rebase invece di pull, update / merge.
Ora rebase era originariamente un'estensione di mercurial, è ancora un'estensione, ma è attualmente distribuita insieme alla distribuzione mercuriale.
Quando segui altri thread, specialmente quelli confrontando git con mercurial , sembra una delle maggiori differenze tra i due è il fatto che git non supporta i rami, ma ha il supporto nativo per rebase. Mercurial non ha supporto nativo per rebase ma supporta i rami.
Quindi la mia domanda quindi, se dovessimo adottare un flusso di lavoro più flessibile usando i rami di caratteristiche, dobbiamo avere un flusso di lavoro solido / fusione che non causi il caos nel ramo principale. Il ramo principale dovrebbe essere peach contenente solo changeset contenenti una singola funzione senza alcun changeset aggiuntivo per le operazioni di unione eseguite. Ora può essere fatto in mercurial senza il supporto di rebase?
Come questione a parte, vorrei inserire alcuni suggerimenti su come aggregare più changeset in un ramo di funzionalità in un singolo changeset quando si inserisce il ramo principale.
Ho letto Una guida alla ramificazione in Mercurial ma non menziona mai i pro o i contro per quanto riguarda la facilità di fusione, o più specificamente, come i risultati della fusione vengono commessi nel ramo principale.