=============================== Manuale di minima sopravvivenza =============================== Workflow di base ================== a partire dalla working copy pulita: :: hg up (normalmente default) faccio le mie modifiche hg topic hg commit -m "messaggio" hg push -t Se ho concluso il lavoro: -------------------------- eseguo:: hg pull (-u per applicare direttamente) * controllo i commit che sono arrivati sul branch dal quale sono partito, per verificare se impattano o meno su quello che io sto facendo nel mio topic. * Faccio un rebase o un merge. ``*`` *Vedi sezione Merge or Rebase (si! non riesco a fare gli ancor. scrolla verso il basso!!)* * Pusho e creo la MR che mercurial mi propone. (in caso di + branch fate attenzione nel submittare la MR puntando al branch dal quale siete partiti) Se NON ho concluso il lavoro: ----------------------------- faccio altre modifiche poi:: hg commit -m "messaggio" hg push -t se mi rendo conto di dover fare una modifica (un fix in genere) che non modifica la sostanza del lavoro svolto posso, con la working copy pulita, fare (dal topic): :: hg absorb hg push -t Linee guida: ============ * I topics devono essere consistenti e devono avere nomi parlanti. * I topic devono dipendere sempre e solo dal branch dal quale sono partiti. * I topics non dovrebbero mai essere costruiti uno sull’altro. * Portare avanti + topics in parallelo è un’attività sconveniente e rischiosa. A meno di casi particolari. * Bisogna sempre usare il buon senso. * Le MR andrebbero submittate quando si ritiene di poter chiudere il topic definitivamente. Se ho dei topic che devono dipendere uno dall'altro probabilmente non sto seguendo la strada giusta. Dunque; o includo, se pertinente, quello che dovrei fare sul mio attuale topic oppure finisco il primo topic lo rebaso ( o mergio) con il branch dal quale sono partito. A questo punto mi sposto sul branch dal quale sono partito e inizio nuovament il ciclo. **Se vi trovaste in situazioni particolari Sandro ha riportato ampie casistiche** qui_ .. _qui: https://docs.thux.it/thx-docs/mercurial/usage.html#mercurial Merge or Rebase? =========================== Supponendo di essere all’interno del topic: * se dal branch da cui sono partito non sono state introdotte nuove modifiche da altri (o anche da me) è probabile che mi convenga fare un rebase. :: hg rebase -d * se nel mentre che lavoravo al mio topic, il branch dal quale sono partito ha ricevuto nuovi changeset (è andato avanti nella storia) e queste modifiche coinvolgono in tutto o in parte i files e le righe da me modificate, è probabile che le mie modifiche attuali non siano aggiornate a quanto si è cambiato sul branch. Dunque effettuo un merge (discrimino cosa voglio tenere e cosa voglio modificare) con il branch dal quale sono partito. :: hg merge altri comandi utili :: hg diff –r BRANCH1:BRANCH2 # per vedere le differenze tra 2 branches.