Usando o repositório de fila de patches do Mercurial no BitBucket para muitos usuários e patches
Desculpem a pergunta de muitas partes, mas estou tendo dificuldade em entender os métodos pretendidos para usar uma fila de patch do Mercurial com o BitBucket, e o Google não está ajudando muito. Minha esperança é que uma resposta descrevendo alguns conceitos MQ abranja muitas das questões de uma só vez. eu lihttp://ches.nausicaamedia.com/articles/technogeekery/using-mercurial-queues-and-bitbucket-org, mas parece estar desatualizado e incompleto. Meu plano geral é permitir uma infinidade de alterações enviadas de vários usuários sem necessariamente comprometê-los a uma ramificação. Esses patches representam modificações opcionais que os jogadores estão fazendo em um jogo para melhorar e estender o jogo. E eu quero que os usuários possam escolher um patch arbitrário ou um conjunto de patches para brincar e revisar. Quando eu obtenho uma compreensão firme de como o hg funciona, eu pretendo escrever alguns scripts PHP ou algo para puxar um branch mais um conjunto selecionado de patches em um espaço de trabalho para que um jogador possa executar o código HTML5 para revisão.
I ter ser capaz de:
Crie um repositório no SourceForgehttp://sourceforge.net/p/iotabuildit/wiki/Home, onde eu originalmente pensei que estaria hospedando tudo.Confirme todo o meu código para o repositório do SourceForge.Perceba que BitBucket pode ser um lugar melhor para hospedar isso (graças aMecanismo recomendado do DVCS para hospedagem de muitos patches independentes) atendendo aos meus requisitos.Importe meu código diretamente do repositório Mercurial do SourceForge para o BitBuckethttp://bitbucket.org/bluemonkmn/iotabuildit/Adicione o URI BitBucket ao TortoiseHg para poder usar o mesmo repositório local com qualquer repositório online.Ativar mq no TortoiseHgQCommitir uma mudança na fila de patches do meu repositório local.Crie um repositório de fila de patches no BitBuckethttp://bitbucket.org/bluemonkmn/iotabuilditmq/.Clone o repositório da fila de correções em um repositório localCopie os arquivos de correção do repositório local original para o repositório da fila de patches (embora eu me pergunte se há uma maneira melhor de fazer isso).Empurre os patches para o repositório da fila de patches BitBucket, ligando o switch --mq antes de fazer um push.Veja os patches listados no BitBucket.Clone uma nova cópia do repositório da fila de patches BitBucket e veja as correções disponíveis no repositório local (junto com o resto da árvore).As coisas que eunão pode descobrir ou ter dúvidas sobre são:
Preciso manter um repositório principal e um repositório de patch localmente?Posso / devo usar o repositório de patches com o SourceForge? (Se eu puder, eu posso abandonar o BitBucket.)O SourceForge suporta mq? (O SourceForge vai me dar um repositório clonado com os patches como eu vi no BitBucket?)Posso / devo usar o repositório original com o repositório de patch do BitBucket? (Se eu puder, eu posso abandonar o repositório no SourceForge.)Preciso usar um repositório ao trabalhar em código destinado a patches e o outro ao trabalhar em código destinado a ser formalmente confirmado?Qual é a melhor maneira de empurrar umremendo em um repositório online?Eu faço um QCommit ou QNew no repositório de patch local, depois pressiono com o switch --mq?Em algum momento durante meu processo, eu enviei uma série e um arquivo .diff para o repositório de patches, o que pareceu um pouco errado. Isso tem manchado minha percepção de como o mq e o BitBucket devem funcionar?Eu deveria estar cometendo arquivos .diff para controle de origem no BitBucket ou SourceForge? (Em alguns casos, o QCommit parece querer cometer arquivos .hgignore, series e .diff)Os usuários supostamente podem ver patches aplicados e / ou não aplicados pendentes em um repositório de patches após cloná-lo?Existe alguma maneira de obter os patches disponíveis em um localou repositório remoto sem clonar isso?Uma vez que eu deletei um patch no meu repositório local, não consegui descobrir como recuperá-lo do repositório remoto sem recodificá-lo, nem consegui descobrir como confirmar a exclusão do patch.Não consegui transferir o patch do meu repositório original para o repositório de patches sem copiar manualmente os arquivos de patch.Em breve vou me deparar com um problema em que não seja possível selecionar alguns patches da fila sem obter outros patches pela frente na mesma fila? Eu estou preocupado que alguns jogadores deixarão de fazer seus patches em uma ramificação separada / fila / qualquer coisa que os coloque em linha com mudanças não relacionadas do mesmo (ou talvez até mesmo outro) usuário. Todas as sugestões para lidar com esse problema em potencial também são bem-vindas.É possível (permitir) que um usuário arbitrário envie um patch sem ter que adicionar explicitamente a cada usuário do BitBucket permissões no repositório do patch?É aconselhável e razoável ter todos (potencialmente centenas de?) Usuários compartilhando o repositório da fila de patches? Isso seria ideal (em vez de cada usuário criar seu próprio repositório de patches, se é que isso é possível), porque não quero que isso seja complicado para os usuários e, considerando a quantidade de tempo que levei para compreender o Mercurial eo BitBucket, Temer qualquer complicação vai desligar um monte de usuários / jogadores.Como você pode dizer, estou meio perdido, sem saber que perguntas fazer. Eu suspeito que a resposta é mais simples do que essas perguntas, mas sem saber a questão, é difícil fazer a pergunta certa. Espero que uma resposta descrevendo a natureza de um repositório de filas de patches irá limpar tudo isso para mim.