O TortoiseHg não pode confirmar - “O sistema não pode encontrar o arquivo especificado”

9

Acabei de pegar o TortoiseHg para usar o controle de fonte distribuído no Windows e o instalei na minha unidade C. Então eu criei um repositório (localizado em D: \ projects).

Quando tento confirmar as alterações, isso me dá o erro

  

"abort: None: o sistema não consegue encontrar   o arquivo especificado "

em uma nova janela intitulada "Commit". Isso faz com que a confirmação seja cancelada. Ele não especifica nenhum arquivo, e quando eu executo hg --traceback commit -m 'Message' ele dá isto como output:

Traceback (most recent call last):
  File "mercurial\dispatch.pyo", line 54, in _runcatch
  File "mercurial\dispatch.pyo", line 483, in _dispatch
  File "mercurial\dispatch.pyo", line 351, in runcommand
  File "mercurial\dispatch.pyo", line 534, in _runcommand
  File "mercurial\dispatch.pyo", line 488, in checkargs
  File "mercurial\dispatch.pyo", line 481, in <lambda>
  File "mercurial\util.pyo", line 420, in check
  File "mercurial\commands.pyo", line 762, in commit
  File "mercurial\cmdutil.pyo", line 1202, in commit
  File "mercurial\commands.pyo", line 757, in commitfunc
  File "mercurial\localrepo.pyo", line 816, in commit
  File "mercurial\localrepo.pyo", line 1053, in status
  File "mercurial\dirstate.pyo", line 629, in status
  File "mercurial\dirstate.pyo", line 540, in walk
  File "mercurial\localrepo.pyo", line 796, in fail
Abort: Adding: The system cannot find the file specified
abort: Adding: The system cannot find the file specified

Eu não sei o que mais posso dar como informações de depuração, não tendo nenhuma experiência com o programa.

Eu configurei o TortoiseHg com um nome de usuário global e para o repositório. Além disso, o kdiff3 é especificado como a ferramenta de mesclagem de três vias e a ferramenta de diferenciação visual. Eu não alterei intencionalmente nenhuma outra configuração.

Obrigado por qualquer ajuda, e por favor peça mais informações, eu não sei o que dar nesta situação.

    
por 31eee384 03.07.2010 в 19:48
fonte

2 respostas

1

Tente isto:

  1. Remover o TortoiseHG
  2. Reinicie o sistema (basicamente para garantir que não haja processos da tartaruga, como monitoramento de arquivos, que possam colocar bloqueios nos arquivos)
  3. Linha de comando do Intall hg
  4. faça o hg commit -m "yourmessage" normal

Se isto funcionar, é mais provável que a ferramenta de monitoração do TortoiseHg esteja bloqueando algum arquivo (o miniaplicativo da bandeja do sistema).

Também pode ser o caso de outra pessoa estar fazendo do que (não TortoiseHg), por exemplo editor? ferramenta diff? etc?

Finalmente, outra razão pela qual isso pode acontecer é: alguém brincou com os arquivos repo dentro do diretório .hg ... Não parece ser o caso embora

    
por Nick 16.07.2010 / 03:43
fonte
2
Estou me familiarizando com Hg e tentando Tortoise-Hg e estou correndo para o mesmo problema exato que o OP. Eu clonei um repositório de um dos projetos de código aberto e fez algumas alterações na fonte. No entanto, quando eu tento confirmar, recebo a seguinte mensagem do commit janela de diálogo:

abort: None: O sistema não pode encontrar o arquivo especificado

Descer para a linha de comando e usar hg commit -m "message" funciona. Eu estou usando isso no Windows 7 64-bit e tentei duas versões TortoiseHg 1.1.5 e o mais recente 1.1.6.1 (versão de 64 bits) a partir deste post.

Alguma ideia do problema? Como você pode imaginar, esse é um grande problema, pois eu não posso nem fazer uma das operações mais básicas para um sistema de controle de versão sem a necessidade de baixar para o CLI. O que há de errado com isso?

Obrigado

Atualização: resolvi o problema! Depois de alguma colaboração na lista de discussão do TortoiseHg, identifiquei a causa raiz desse erro. Este erro está acontecendo porque sempre que o tortoisehg tenta cometer ele está colocando um parâmetro extra 'none' no final dessa linha de comando de commit.

Isso pode acontecer se você definir suas configurações de repositório - > Confirmar > Lista de confirmação automática como "Nenhum". A correção é simples - certifique-se de que a Lista de Confirmação Automática e a Lista de Exclusão Automática estejam configuradas para < não especificado > Verifique também suas configurações globais e verifique se esses dois campos estão definidos da mesma maneira.

Além disso, para ver se sua Lista de Confirmação Automática e Lista de Exclusão Automática estão configuradas corretamente, digite

hg showconfig --debug tortoisehg

Se contiver uma linha com algo para esse efeito:

mercurial.ini:15: tortoisehg.autoinc=None

então o tortoisehg não está configurado corretamente.

Espero que isso resolva o problema para o OP e para os outros que estão enfrentando esse problema e tentando arrancá-lo.

    
por greatwolf 21.11.2010 / 03:45
fonte