Como organizar o backup de confirmações locais no Mercurial?

2

Estamos migrando do SVN para o Mercurial e essa questão surgiu praticamente desde o primeiro dia. Então, aqui está o dado:

  • Repositório Mercurial compartilhado residente em um servidor dedicado, cujo backup é contínuo.
  • Desenvolvedores fazem revisões, trabalham com eles, fazem commits locais e retornam ao repositório compartilhado.
  • Os desenvolvedores desejam fazer backup de seus commits locais.
  • O mecanismo de backup é o Mercurial.
  • As confirmações suportadas nunca são obtidas, exceto quando o desenvolvedor específico perde seu trabalho ainda não processado. Espera-se que isso aconteça raramente.
  • Deve ser relativamente indolor restaurar as confirmações do backup.

Eu costumo fornecer um script de backup especial, que faria algo assim:

hg push -fr REV URL

Como você pode ver, eu estou bem em ter várias cabeças no repositório de backup, a menos que você me convença do contrário.

Então, a questão é sobre o REV e o URL, ou seja, vejo as seguintes opções para eles:

  • REV = default, URL por dev - Cada desenvolvedor recebe um repositório de backup dedicado.
  • REV por desenvolvedor, mesma URL para todos - Cada desenvolvedor recebe uma filial dedicada no mesmo repositório de backup.
  • REV = padrão, mesma URL para todos - Todos os desenvolvedores retornam suas confirmações locais para a ramificação padrão do mesmo repositório de backup.

Eu não tenho muita experiência com o Mercurial, então acho muito difícil decidir qual é a melhor opção. Alguém pode aconselhar, por favor?

EDITAR

Agora percebi que minha pergunta expõe meu total mal-entendido do comando push. Claro, eu não quero dizer push -fr REV URL . O que eu realmente quis dizer com REV é BRANCH, então as opções devem ser:

  • BRANCH = padrão, URL por desenvolvedor
  • FILIAL por desenvolvedor, mesma URL para todos
  • BRANCH = padrão, mesmo URL para todos

Em seguida, não tenho ideia de como ir para outro ramo.

Por exemplo, um desenvolvedor trabalha na ramificação padrão e deseja fazer backup de suas confirmações locais para o repositório de backup especial compartilhado por todos os outros desenvolvedores. Naturalmente, esse repositório de backup não é aquele do qual os desenvolvedores extraem as novas alterações. De qualquer forma, o backup precisa ir para uma filial dedicada a esse devedor específico, conforme indicado por opções 2. Como faço isso? Como posso dizer ao push que as alterações são enviadas para uma ramificação diferente?

    
por mark 26.08.2011 / 22:08

1 resposta

1

(BTW: você está perdendo logicamente uma quarta opção,

  • REV por desenvolvedor, URL por desenvolvedor

que, no entanto, não faz muito sentido.)

IMHO, seria útil se todo desenvolvedor tivesse seu próprio repositório de backup. Imagine a situação de "restauração": você está perdendo seu espaço de trabalho local e precisa restaurá-lo a partir do backup. Lá você não necessariamente quer o material não-comprimido do outro (ou você?). Pode te machucar se você tentar empurrar para o repositório "real".

Todos os que trabalham em uma ramificação não funcionariam bem, pois perturbariam o "trabalho diário", que acontece nas ramificações default , testing , devel e / ou experimental . (Apenas exemplos.)

= > URL por colaborador

Para a pergunta que deve ser enviada: apenas tudo, então não dê nenhum argumento -r .

    
por 26.08.2011 / 23:46

Tags