Forçar nomes de usuários específicos para Mercurial commits

4

Estamos mudando do Subversion para o Mercurial em nosso ambiente corporativo. Haverá um repositório central acessível via HTTPS com autenticação HTTP básica.

Agora estou curioso para saber se é possível forçar nomes de usuários específicos para commits? Eu estou falando sobre os nomes de usuários que podem ser definidos em .hgrc como este

[ui]
username = John Doe <[email protected]>

e que são visíveis nas mensagens de log.

Como esse arquivo é colocado na máquina de cada desenvolvedor, ele está fora do controle do administrador.

Isso não seria um problema, porque confiamos em nossos desenvolvedores internos, mas externos (freelancers) também terão acesso a pelo menos alguns repositórios. Nós definitivamente não queremos que eles façam o check-in com nomes diferentes.

Seria ótimo se o nome de usuário pudesse ser ligado / forçado ao nome de usuário HTTP. Por exemplo, se John enviar suas alterações para a URL https://[email protected]/hg/project1 , os nomes de usuários de todas as confirmações serão definidos como John Doe <[email protected] .

Isso é possível?

    
por Sven 03.02.2011 / 17:41

2 respostas

2

Você pode impor os nomes de usuário no servidor, no momento do envio. Ou seja Para seus freelancers, pode ser viável apenas permitir que eles enviem alterações que contenham algum nome de usuário pré-aprovado (isso pode restringir um pouco outros recursos interessantes do Mercurial, ou seja, as pessoas podem compartilhar as alterações entre si antes de pressionar). Você também pode ter uma lista completa de nomes de usuário pré-aprovados no servidor central.

Tudo isso pode ser feito com um gancho pretxnchangegroup.

    
por 04.02.2011 / 09:59
1

Como djc mencionado, você pode usar um gancho pretxnchangegroup. A documentação para impor a política de confirmação em seu repositório central é encontrada na página wiki do EnsureCommitPolicy nos documentos do Mercurial.

Isso pode criar outros problemas, já que os usuários não descobrirão o problema até que tentem voltar para o repositório "principal" que tem o gancho instalado. Nesse caso, eles teriam que retirar todas as revisões do repo e reaplicá-las com um novo nome de usuário.

A melhor opção, IMO, seria simplesmente não permitir que seus freelancers tenham acesso aos repositórios principais. Eles podem enviar os conjuntos de alterações para seus desenvolvedores principais que, em seguida, massagear os patches e colocá-los no próprio repositório.

Se você precisar corrigir apenas um problema existente, consulte "Posso alterar o nome de usuário em um mercurial changeset" em stackoverflow.

    
por 05.02.2011 / 01:15