Erro mercurial: abortar nenhum nome de usuário fornecido


117

Problema no WindowsXP (provavelmente acontecerá em todas as instalações do Win), pela primeira vez usando o Mercurial. Encontrei a resposta em um lugar desconhecido, então estou perguntando / respondendo a pergunta eu mesmo, para que outros não tenham que pesquisar como eu.

Primeira vez usando Mercurial na máquina.

Adicionar novo repoz:

c:\bla\>hg add

sem problemas.

Em seguida, comprometa:

c:\bla\hg commit

erro:

abortar: nenhum nome de usuário fornecido (consulte "hg help config")


70
Como as informações sobre um utilitário de controle de versão não estão relacionadas à programação?
mipadi

5
@mipadi: Da mesma forma que as informações sobre o uso de um teclado não estão relacionadas à programação.
Draemon

É realmente um olho roxo para a Mecurial que já faz mais de dois anos e esse problema ainda existe.
Celeritas

Onde está o maldito arquivo no Cygwin ??! ... Oh. Se o repo for clonado ou iniciado, haverá um em (repo) /.
Hg

Respostas:


94

Solução:

Na minha instalação do Windows, o Mercurial.ininão foi propagado. Ele também precisa de um e-mail de usuário adicionado a ele.

Pegue o Mercurial.iniarquivo padrão encontrado no diretório de instalação executável do Mercurial ( C:\Program Files\Mercurial\Mercurial.inina minha máquina) e copie-o para o diretório inicial do usuário ( C:\Documents and Settings\myNameno winXP).

Em uma instalação do Windows 7 não há .ini padrão, você precisará criar um novo em C:\Users\myName.

Em seguida, edite esse arquivo .ini. Encontre esta área. O nome de usuário precisa de um conjunto de e-mail. Estará em branco - adicione seu nome de e-mail aqui.

[ui]
; editor used to enter commit logs, etc.  Most text editors will work.
editor = notepad
username = userEmail@domain.com

Isso resolveu o problema para mim.


1
Postei esta perguntas e respostas para, com sorte, ajudar alguém no futuro a não perder tempo com esta pepita.
Kevin Won em

4
Na verdade, não há nenhum arquivo Mercurial.ini no meu diretório de instalação. Adicionar um arquivo chamado hgrcna .hgpasta do meu repositório com o texto acima me permitiu submeter as alterações.
Phil Gan

2
Também não há arquivo Mercurial.ini em meu diretório de instalação (Win 7 de 64 bits). Eu criei Mercurial.ini em C: \ Users \ Abbas e copiei e colei o snippet [ui] de Kevin e funcionou perfeitamente. Tentei a solução de Phil e funcionou também.
Abbas

Obrigado pela pergunta e resposta. Eu teria levado séculos para descobrir isso. Ah, as dificuldades de desenvolver no Windows ...
Wes,

Estou usando o Tortoise Hg e essa dica também me ajuda. Obrigado !
James Freitas

51

Desculpe, mas por que você chama isso de problema? O Mercurial pede para você ver hg help config, e este texto de ajuda explica explicitamente como adicionar um nome de usuário - eu sei desde que escrevi esse texto de ajuda :-)

Como devemos melhorar a mensagem de erro para tornar isso mais claro?

Edit: Desde que escrevi isso em 2010, conseguimos estragar tudo, fazendo hg help configincluir ajuda para todas as configurações de configuração. Portanto, o pequeno e agradável exemplo de como definir o nome de usuário:

[ui]
username = Your Name <your@email.com>

agora está perdido no ruído (adicione isso a ~/.hgrc, criando o arquivo, se necessário). Eu abri um problema para isso.


1
Obrigado pela explicação - é tão bom ver quando as pessoas seguem as questões com a solução que encontraram :-) No entanto, o texto de ajuda para hg help configinclui instruções para o Windows, ou seja, lista as possíveis localizações do seu Mercurial.iniarquivo. Um dos locais é C:\Program Files\Mercurial\Mercurial.ini(listado como <install-dir>\Mercurial.ini), então não sei por que as configurações nesse arquivo não entraram em vigor.
Martin Geisler

13
O grande problema para mim (e o que me trouxe a esta questão) foi o fato de nada disso ser mencionado na página de início rápido: mercurial.selenic.com/quickstart/# . Essa página indica que uma instalação básica seguida de seguir as instruções funcionará, e não funciona, sem ler o texto de ajuda. Neste ponto, você está nervoso porque já supõe que algo deu errado
Nick Fortescue

7
@Martin Geisler: O hg help configtexto não diz o que precisamos fazer para resolver o problema e não está particularmente claro para onde os caminhos estão apontando na seção "No Windows". Para onde %USERPROFILE%ou %HOME%aponta? Eu acho que não ajuda que a instalação seguinte mercurial.ininão exista em nenhum lugar do meu sistema.
Phil Gan

8
Não quero ser insultuoso, então, por favor, considere isso uma tentativa de ser construtivo. Pode haver uma resposta nas 1260 linhas de texto que é impressa de forma padronizada quando eu faço "hg help config", mas eu realmente acho que 1260 linhas de texto é excessivo e que uma resposta curta e distinta, mesmo que me remeta para os documentos seriam muito melhores.
Tony Giaccone,

4
@TonyGiaccone: Em 2010 hg help configsó imprimiria uma tela cheia de texto e eu tinha certeza de que definir o nome de usuário era o principal exemplo nesse texto. Desde então, conseguimos estragar tudo incluindo o texto de ajuda para todas as opções de configuração nessa saída :-( Abri um problema para isso: mercurial.selenic.com/bts/issue3348
Martin Geisler

13

No Windows XP, não vejo um arquivo ini. Depois de criar o repositório usando o comando hg init, adicionei um arquivo com o nome hgrcà pasta.hg

Com o seguinte conteúdo:

[ui]  
editor = notepad  
username = zamboni@icemachine.com

1
a menção do hgrcna .hgpasta foi útil
E-rich

9

independentemente do Windows ou do Linux, hg procura o arquivo "/.hg/hgrc" para obter uma configuração válida. Como em "hg help config" diz, você só tem que adicionar no final desse arquivo as seguintes linhas:

[ui]
username = YOUR NAME <EMAIL@HOST.COM>
verbose = true

salvar e "hg commit -m 'test'"


4

Se você estiver usando TortoiseHg, você pode adicionar configurações de [IU] facilmente

  1. Clique com o botão direito em qualquer pasta do Explorer para acessar o menu do TortoiseHg .

  2. No menu flyout do TortoiseHg, escolha Configurações Globais

  3. Na interface, clique em Editar Arquivo

  4. Adicione as configurações de [IU] ao final

[ui]

username = YourName

verbose = true

  1. Salve e pronto

3

Aqui está o que funcionou perfeitamente para mim no Windows XP:

  1. Vá para a pasta C:\Program Files\Mercurial\hgrc.dassumindo que você instalou o Mercurial C:\Program Files\Mercurial\.
  2. Você deve ver um Mercurial.RCarquivo lá.
  3. Copie o arquivo para C:\Documents and Settings\ [USERNAME]\
  4. Renomear Mercurial.RCpara Mercurial.ini.
  5. Edite a seção [ui] assim:

    [ui]

    ; editor usado para inserir logs de commit, etc. A maioria dos editores de texto funcionará.

    editor = notepad

    verbose = True

    username = userEmail@domain.com


Também funciona para o Windows Server 2008 e o MSI do Mercurial de 64 bits, exceto, é claro, a etapa 3 deve ser c: \ usuários [nome de usuário]
Andrew Cowenhoven,

Tendo instalado "TortoiseHg 2.2 com Mercurial 2.0 - x86 Windows", o arquivo Mercurial.RC pode ser encontrado em C: \ Arquivos de programas \ TortoiseHg \ hgrc.d
urig

1

Eu tive o mesmo problema. O que me ajudou foi colocar [ui]e username = firstname lastnameem linhas separadas do ~/.hgrcarquivo. Colocar essas duas coisas em uma linha não funcionou e levou ao erro.


1

Esse problema ainda existe. O mercurial.iniarquivo é ignorado, não importa onde você o coloque.

Nenhum mercurial.iniarquivo é criado durante a instalação. Eu criei um no diretório de instalação do Mercurial, mas não teve efeito. Copiei para %USERPROFILE%e depois para %HOME%, mas nenhum dos dois funciona.

Colocar .hgrcno diretório HOME funciona.

A documentação ("hg help config") precisa ser corrigida.


1

Configure seu .hgrc assim:

[ui]
username = your name <youremail@host.com>
verbose = True

NOTA!! Não deixe de fora a parte [ui]


0

Isso é um problema porque no arquivo de ajuda o caminho para o arquivo de configuração especificado não existe, temos que copiar o Mercurial.inidiretório dos arquivos de programas para o diretório USER, talvez seja um problema vindo do instalador do Windows.

@Kevin Won: você esqueceu de adicionar a linha:

verbose = True
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.