Pergunta

Temos dois desenvolvedores na mesma rede fechada (ugh, governo estúpido). Outro desenvolvedor a alguns minutos de carro e um quarto desenvolvedor no meio do país.E-mail, FTP e mídia de remoção são métodos possíveis de transferência para pessoas que não estão na mesma rede.

Sou um dos dois desenvolvedores de rede fechada, considere-nos o local "mestre".

Qual é a melhor configuração/padrão do Mercurial para grupo?Qual é a melhor maneira de transmitir alterações de/para os desenvolvedores remotos?Como sou o responsável, imaginei que teria que manter pelo menos um repositório master com outro repositório local no qual eu pudesse desenvolver.Cada outra pessoa só precisa de um clone do mestre.Isto está certo?Acho que isso também me torna responsável pela fusão.

Como você pode ver, ainda estou tentando entender o controle de versão distribuído.Não creio que haja outra maneira de fazer isso com a situação da conectividade.

Foi útil?

Solução

Os usuários fora da rede podem fazer patches, e/ou usar e-mail para enviar as atualizações para o repositório principal ou para alguém como você para mesclá-las.As outras pessoas internas podem ter cópias locais, como você, e fazer fusões - mas se você estiver tendo esses patches fora da rede, pode ser melhor que uma pessoa lide com eles para que ninguém fique confuso, mas isso é algo que você teria que fazer. considere-se.

Sincronizando de outra maneira, você criaria um patch e eles enviariam um e-mail ou uma unidade flash para os desenvolvedores remotos para corrigir seu sistema.Você vai precisar de uma boa comunicação na equipe, cara, agradeço por não estar no seu lugar.

Essas são minhas únicas sugestões – bem, o óbvio, consiga uma conexão VPN para eles!Eu adoraria saber como foi, quais planos se estabilizam em um ritmo semanal, etc.

Outras dicas

Patches são uma solução simples e versátil.

Para movimentar grupos maiores de alterações (especialmente alterações binárias e mesclagens), o Mercurial oferece pacotes binários.Um pacote é basicamente o material binário que é enviado na rede quando você faz hg push, mas aqui ele é capturado em um arquivo.

Vamos imaginar que eu consegui um clone de alguma forma (por pen drive, DVD, etc.).Chame-o upstream.Eu então faço um segundo clone, chame-o devel.Faço todo o meu desenvolvimento em devel e faça muitos commits, mesclagens, etc.Como o Mercurial é distribuído, posso fazer tudo isso offline.

Para ver quais conjuntos de alterações estão faltando em upstream Eu faço

% hg outgoing ../upstream

Quando tenho algo para enviar, posso usar

% hg bundle changes.hg ../upstream

para obter um arquivo binário compactado que contém os conjuntos de alterações, incluindo todos os seus metadados.Posso então gravar esse arquivo em um CD e enviá-lo por correio...

O destinatário do pacote pode fazer

% hg incoming changes.hg

para ver a lista do conjunto de alterações e

% hg pull changes.hg

para descompactar e adicionar os conjuntos de alterações ao seu repositório.Ele provavelmente terá que mesclar - é exatamente como se ele tivesse extraído diretamente do seu repositório por HTTP ou SSH.

Note o upstream repositório é usado apenas como uma maneira conveniente de lembrar quais conjuntos de alterações já foram encontrados no repositório upstream.Você também pode simplesmente anotar o ID do changeset e usar hg bundle --base ao agrupar para especificar o conjunto de alterações base (comum).Ver hg help bundle ou veja na wiki.

Correto.A única maneira de chegar à rede fechada é através de uma unidade flash.

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