Domanda

Sto lavorando su un progetto in cui ho un commit che ha introdotto una caratteristica con i maggiori problemi che non sono stati scoperti immediatamente. Ora voglio rimuovere completamente quella revisione, mantenendo il lavoro seguente, ma sto avendo un momento difficile confezionamento mia testa intorno a questo 3 vie di unione. Ecco un grafico semplificato del mio progetto.

o  changeset:   134:7f81764aa03a
|  tag:         tip
|  parent:      128:451d8a19edea
|  summary:     Backed out changeset 451d8a19edea
|
| @  changeset:   133:5eefa40e2a29
| |  summary:     (Change I need to keep keep)
| |
*snip 3 commits*
| o  changeset:   129:5f6182a97d40
|/   summary:     (Change I need to keep keep)
|
o  changeset:   128:451d8a19edea
|  summary:     (Change that introduced a major problem)
|
o  changeset:   127:4f26dc55455d
|  summary:     (summary doesn't matter for this question)

Se ho capito bene, R127 e R134 sono esattamente gli stessi. Quando ho hg up -C -r 133 e quindi eseguire hg merge, Meld si apre con tre forme di uno dei miei file: locale, di base, e altri. locale sembra essere R133 ma sto avendo un momento difficile avvolgere la mia testa intorno a ciò che "base" e "altro" media.

È stato utile?

Soluzione

Locale R133

Altro R134

Base è R128 (l'antenato comune a entrambi R133 e R 134)

Quando si esegue una stampa a 3 vie si confronta tutti e tre questi insieme per aiutarvi a decidere cosa prendere e da dove. Vedendo ciò che il cambiamento è l'altra di revisione e ciò che l'antenato comune sembrava si è in grado di prendere una decisione molto più informati su cosa tenere e cosa cambiare.

Altri suggerimenti

La tua domanda è davvero fonte di confusione, ma qui ci sono alcune informazioni che possono aiutare a.

  • Qual è la base?

Base è la versione non modificata della revisione che si è attualmente estratto e lavorato. dove eventualmente altri cambiamenti hanno biforcuta off (si può avere revisioni tra il vostro attuale locale e di base!). il suo solo dove la revisione più vicino dove nessun altro forcella ha deviato dal dopo (stesso genitore) (nel tuo caso R128)

  • Qual è il capo?

La testa è l'ultima revisione nel controllo della versione. se si lavora da soli su una sola copia probabilmente sarà di base. ma un lavoratore co potrebbe aver modificato lo stesso file e controllato in controllo di versione, quindi testa è oltre la vostra base.

  • Qual è locale?

locale è la vostra versione modificata (nel tuo caso R133)

  • ciò che è altro?

Altra è la certa forcella / ramo che ha anche la vostra base come genitore (nel tuo caso R134)

  • Come funziona 3-way lavoro unione?

3 way merge funziona (almeno in fusione) gerarchicamente. di solito da sinistra a destra in questo modo:

locale> di base> altro / head

base / locale è in gran parte perché la sua banale proprio quello che è stato modificato

quindi è possibile unire le modifiche nella revisione testa o quella del vostro lavoratore co o qualsiasi altra cosa.

Non ci possono essere molteplici altre revisioni / testa, ma poi non è il vostro lavoro per unione in e quindi più di 3 vie confronto non ha senso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top