Como usar o mercurial para gerenciamento de versões?

Esta é uma pergunta primo com o meupergunta anterior de "Como gerenciar o desenvolvimento simultâneo com o mercurial", que abrange o fluxo de trabalho do desenvolvedor individual. A resposta a esta pergunta realmente influencia a escolha do fluxo de trabalho do desenvolvedor.

Isto éNÃO uma "prática recomendada de gerenciamento de versão" geral ou questão de IC, como foiPerguntou muitos vezes com boas respostas, e há um enorme corpo de literatura disponível para matar o tempo.

Só estou pedindomaneiras específicas de usar mercurial dentro do contexto do gerenciamento de liberação.

A resposta mais óbvia e predominante seria supostamenteestável / padrão, que é totalmente coberto pelolindo blog @Steve Losh, e mais concisamente emuma resposta dele. É simples e eficaz.

Um exemplo proeminente dessa configuração é o próprio hg. hg usamais alguns repositórios para desenvolvimento ativo, mas para fins de gerenciamento de versão tudo parece estar contido nos ramos estáveis / padrão dorepositório principal.

A configuração hg realmente manifesta uma variação, ou melhor, uma versão estendida, de stable / default:clone de ramificação. Eu descrevi o processo emuma resposta para uma pergunta sobre ramificação nomeada versus vários repositórios (com outraÓtima resposta de @Martin Geisler). O que esqueci de mencionar na minha resposta é como o clone de ramificação funciona para o fluxo de trabalho do desenvolvedor: se você precisar corrigir um bug em uma ramificação, deveráhg clone <main repo>#<branch> masnão o clone de ramificação, porque seu conjunto de alterações ainda retornará ao repositório principal e empurrado para o clone de ramificação automaticamente. Claro que você pode optar por não clonar e apenashg update <branch> no seu clone principal, mas a maioria dos argumentos para o uso de clones separados (especialmente a compilação independente) se aplica aqui.

Agora, de volta à pergunta:Existem outras maneiras que se encaixam em diferentes cenários do mundo real? Por exemplo, um ciclo de lançamento principal / secundário / patch tradicional com um longo lapso entre os lançamentos provavelmente requer um fluxo de trabalho bem diferente do que um aplicativo da Web de ritmo acelerado e pronto para uso. Por favor, comente também sobre as abordagens stable / default e branch clone, se desejar.

Como essa é quase uma pergunta de pesquisa, só posso tentar aceitar a "melhor" resposta subjetiva. Se eu conseguir mais algumas respostas do que minha pergunta sobre o fluxo de trabalho do desenvolvedor, é isso.

Obrigado por todas as suas contribuições!

questionAnswers(1)

yourAnswerToTheQuestion