Domanda

La situazione: Sono nuovo di Mercurial. Recentemente ho messa a punto e che hanno iniziato a utilizzare un repository in un modello consigliato a me ( vedi diagramma di Rudi sotto). Le cose stanno andando bene, ma ho incontrato il mio primo problema pratico di applicazione. Mercurial sembra essere orientato verso le unioni avanti / amalgamato e vorrei fare il backup. Voglio ripulire il nostro difetto e ramo stabile avviando con il ramo vendor, ri-fare le nostre modifiche e controllare come predefinito. Quindi unire che in stabile.

V1----V2-------------V3---------V4     Vendor
 \     \              \          \
  D1----D2---D3--D4-D5-D6-D7-D8---D9   default
                  \           \    \
                   S1----------S2---S3 stable

La questione:? Come faccio a iniziare con il ramo fornitore come il genitore, unire le modifiche di default e li affido al ramo di default

ho pensato che il seguente avrebbe fatto, ma l'aggiornamento cambia la directory di lavoro.

hg update -C vendor
hg update default
hg merge
È stato utile?

Soluzione

Ci sono due modi per andare questo. L'uno a destra e l'espediente uno. Farò quello giusto prima:

hg update default
hg --config ui.merge=internal:other merge vendor

che aggiorna il tuo genitore per impostazione predefinita e la directory di lavoro di default e poi si fonde nei contenuti da fornitore, ma lo fa utilizzando uno strumento di unione interna che sempre raccoglie l'altra opzione quando c'è alcuna differenza, in modo da avere di default cercando come fornitore dopo che si fondono (e commit).

Il modo più subdolo è:

hg update -C vendor
hg debugsetparent default
hg commit

Dove debugsetparent è un powertool che fa la parte "genitore cambiamento" di aggiornamento senza aggiornare i file nella directory di lavoro.

Altri suggerimenti

Anche se manca il contesto a questa domanda e le sue risposte fornisce, ho trovato risposta ufficiale del sul Wiki di Mercurial .

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