Pergunta

A situação: Eu sou novo no Mercurial. Recentemente, configurei e comecei a usar um repositório em um modelo recomendado para mim (Veja o diagrama de Rudi abaixo). As coisas estão indo bem, mas eu encontrei meu primeiro problema prático de aplicação. O Mercurial parece estar voltado para mesclas para a frente/mistura e eu gostaria de fazer backup. Quero limpar nossa ramificação padrão e estável começando com a filial do fornecedor, re-fazer nossas alterações e verifique-a como padrão. Em seguida, mescle isso em estável.

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

A questão: Como faço para começar com a filial do fornecedor como pai, mesclar as alterações padrão e compromete -as com a filial padrão?

Eu pensei que o seguinte faria isso, mas a atualização altera o diretório de trabalho.

hg update -C vendor
hg update default
hg merge
Foi útil?

Solução

Existem duas maneiras de ir isso. O direito e o expediente. Vou fazer o certo primeiro:

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

Isso atualiza seus pais para o padrão e o diretório de trabalho para padrão e depois se funde no conteúdo do fornecedor, mas o faz usando uma ferramenta de mesclagem interna que sempre Escolha a outra opção quando houver alguma diferença, então você terá o padrão como fornecedor após a mesclagem (e se comprometer).

A maneira sorrateira é:

hg update -C vendor
hg debugsetparent default
hg commit

Onde debugsetparent é um PowerTool que faz a parte da "alteração dos pais" da atualização sem realmente atualizar os arquivos no diretório de trabalho.

Outras dicas

Embora não tenha o contexto que essa pergunta e suas respostas fornecem, eu encontrei o Resposta oficial no Wiki de Mercurial.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top