Sto cercando di prendere l'abitudine di fare revisioni del codice, ma le fusioni hanno reso difficile il processo perché non so come chiedere a Mercurial di "mostrare solo i cambiamenti introdotti dall'unione che non erano presenti in nessuno dei due i suoi genitori. "Mercuriale: come posso vedere solo le modifiche introdotte da un'unione?
Oppure, un po 'più formale (grazie a Steve Losh):
Mostrami ogni pezzo in unione che non era presente in nessuno dei suoi genitori, e mi mostra ogni pezzo presente in uno dei suoi genitori che non è presente anche in 3.
Ad esempio, si supponga di avere un repository con due file, a e b. Se "a" viene modificato nella revisione 1, "b" viene modificato nella revisione 2 (che si trova su un ramo separato) e queste due modifiche vengono unite nella revisione 3, otterrò una cronologia che assomiglia a questa:
@ changeset: 3 |\ summary: Merged. | | | o changeset: 2 | | summary: Changing b | | o | changeset: 1 |/ summary: Changing a | o changeset: 0 summary: Adding a and b
Ma se chiedo di vedere le novità introdotte dalla versione 3, hg di -c 3
, Mercurial mi mostrerà la stessa cosa se ho chiesto di vedere le modifiche introdotte nella revisione 1, hg di -c 1
:
$ hg di -c 3 --- a/a +++ b/a @@ -1,1 +1,1 @@ -a +Change to a $ hg di -c 1 --- a/a +++ b/a @@ -1,1 +1,1 @@ -a +Change to a
Ma, ovviamente, questo non è molto utile - invece, mi piacerebbe sapere che nessuna nuova modifica è stata introdotta dalla revisione 3 (o, se c'è stato un conflitto durante la erge, mi piacerebbe vedere solo la risoluzione di quel conflitto). Qualcosa di simile:
$ hg di -c 3 $
Quindi, come posso fare questo?
ps: so che posso ridurre il numero di fusioni nel mio repository utilizzando rebase
... Ma non è un problema mio - il mio problema è capire cosa è stato modificato con una fusione.
Sembra un comando molto utile. Non vedo l'ora che arrivi la risposta. –
Domanda simile: [In mercuriale, come vedere la differenza tra un changeset di unione e un genitore senza modifiche dall'altro genitore?] (Http://stackoverflow.com/q/4329230/151299) –
Ho finito per scrivere un plugin di mergediff: http://mercurial.selenic.com/wiki/MergediffExtension –