Mecanismo recomendado do DVCS para hospedagem de muitos patches independentes

Eu tenho um projeto apenas começando emhttp://sourceforge.net/projects/iotabuildit/ (mais detalhes emhttp://sourceforge.net/p/iotabuildit/wiki/Home/) que está atualmente usando o Mercurial para controle de revisão. E parece que o Mercurial e o SourceForge têm quase todos os recursos ou elementos certos para montar o mecanismo de colaboração que tenho em mente para este projeto, mas acho que ainda não cheguei lá. Eu quero que as pessoas possam enviar, discutir e votar em mudanças individuais de um grande número de indivíduos (mais desenvolvedores do que um projeto normalmente teria). E eu quero que seja o mais fácil possível para os usuários participarem disso. O pensamento agora é que as pessoas podem clonar o fork "free4all", que é um clone do repositório "code" base, ou criar seu próprio fork em seu próprio projeto de usuário SourceForge (SourceForge agora fornece um espaço de trabalho para cada usuário hospedar conteúdo relacionado a projetos diversos). Então eles podem clonar isso em seu repositório local (depois de baixar o TortoiseHg ou seu cliente Mercurial preferido). Em seguida, eles podem fazer modificações, enviá-los, empurrá-los para a bifurcação e solicitar uma mesclagem no repositório base de "código", no qual podemos discutir / revisar a solicitação de mesclagem. Tudo isso ainda é muito mais passos e mais formal do que eu gostaria.

Eu vejo que existe uma coisa como "shelving" no Mercurial, mas não vejo como / se isso é suportado no repositório do SourceForge. E provavelmente não há uma maneira de discutir alterações arquivadas, pois há solicitações de mesclagem.

Estou procurando por sugestões que tornem isso mais fácil. Idealmente, gostaria que os usuários pudessem:

Especifique qualquer versão que eles gostariam de reproduzir e solicite a versão extraída do controle de origem hospedado para que o usuário reproduzaa SourceForge (porque o jogo não pode ser jogado localmente devido a restrições de segurança, o navegador Chrome se aplica corretamente ao código javascript acessando o conteúdo da imagem em arquivos independentes)Permitir que o usuário baixe a versão solicitada do projeto para edição local (uma versão C # criada a partir da mesma fonte também pode ser reproduzida localmente ou o Internet Explorer aparentemente ignora a restrição de segurança, permitindo a reprodução local em um navegador)Aceite as modificações enviadas em um formulário que possa ser mesclado com qualquer outro "branch" ou versão compatível do jogo que tenha sido enviado / postado (idealmente, isso seria muito simples - talvez usado apenas envia todo o conjunto de arquivos de volta para o servidor e a comparação e correção / extração de diff é executada lá)Outros jogadores podem ver uma lista de correções enviadas disponíveis e escolher qualquer conjunto para jogar / testar com, em seguida, discutir e votar em alterações.

Claramente, alguns desses requisitos são muito específicos, e eu provavelmente precisarei escrever algum código do lado do servidor se eu quiser alcançar o objetivo ideal. Mas eu quero seguir o caminho da menor resistência e usar as tecnologias disponíveis se a maior parte da funcionalidade que eu preciso já estiver quase lá. Ou eu gostaria de ver se consigo chegar mais perto do que o processo que descrevi anteriormente sem escrever nenhum código de servidor. Então, quais peças vão me ajudar a fazer isso? O Mercurial & SourceForge suporta o armazenamento e compartilhamento de código arquivado da maneira que eu gostaria? Existe alguma coisa nessa "Fila de Patches" (que eu vejo, mas não consigo entender ou ainda trabalho) que pode ajudar? Existe uma maneira de extrair um arquivo de patch de um determinado conjunto de arquivos em comparação com uma revisão específica em um repositório (no lado do servidor), sem que o usuário baixe qualquer componente do Mercurial?

questionAnswers(1)

yourAnswerToTheQuestion