TortoiseHg не может зафиксировать - «Система не может найти указанный файл» - PullRequest
9 голосов
/ 03 июля 2010

Я просто взял TortoiseHg для использования для управления распределенным исходным кодом в Windows и установил его на свой диск C. Затем я создал репозиторий (находится в D: \ projects).

Когда я пытаюсь зафиксировать изменения, выдается ошибка

"abort: None: система не может найти указанный файл "

в новом окне «Коммит». Это приводит к прерыванию фиксации. Он не указывает ни одного файла, и когда я запускаю hg --traceback commit -m 'Message', он выводит это как:

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

Я не знаю, что еще я могу дать в качестве отладочной информации, не имея никакого опыта работы с программой.

Я настроил TortoiseHg с глобальным именем пользователя и для хранилища. Кроме того, kdiff3 указывается как инструмент трехстороннего слияния и инструмент визуального сравнения. Я сознательно не изменил никаких других настроек.

Спасибо за любую помощь, и, пожалуйста, попросите дополнительную информацию, я просто не знаю, что дать в этой ситуации.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2010

Я знакомлюсь с Hg и пробую Tortoise-Hg и сталкиваюсь с той же проблемой, что и OP.Я клонировал репозиторий из одного проекта с открытым исходным кодом и внес некоторые изменения в исходный код.Однако, когда я пытаюсь выполнить фиксацию, я получаю следующее сообщение из диалогового окна фиксации:

abort: None: система не может найти указанный файл

Переход к командной строке и использование hg commit -м "сообщение" работает.Я использую это под Windows 7 64-bit и попробовал две версии TortoiseHg 1.1.5 и последнюю версию 1.1.6.1 (64-bit версию) на этот пост.

Есть идеи, в чем проблема?Как вы можете себе представить, это серьезная проблема, так как я даже не могу выполнить одну из самых основных операций для системы управления версиями без необходимости переходить на CLI.Что не так с этим?

Спасибо

Обновление: Я решил проблему!После некоторой совместной работы над списком рассылки TortoiseHg я определил причину этой ошибки.Эта ошибка происходит потому, что всякий раз, когда tortoisehg пытается зафиксировать, он добавляет дополнительный параметр 'none' в конец этой командной строки.

Это может произойти, если вы установили для своих настроек репозитория-> Commit-> Auto Commit List значение 'None'.Исправление очень простое: убедитесь, что для списка автоматической фиксации и списка автоматического исключения установлено значение <не указано>.Также проверьте свои глобальные настройки и убедитесь, что эти 2 поля установлены одинаково.

Дополнительно, чтобы проверить, правильно ли заданы ваш список автоматической фиксации и список автоматического исключения, введите

hg showconfig --debug tortoisehg

Если в нем есть строка для этого:

mercurial.ini:15: tortoisehg.autoinc=None

, тогда tortoisehg не настроен должным образом.

Я надеюсь, что это решит проблему для OP и других, которые сталкиваются с этой проблемойи вырывает их волосы, пытаясь их починить.

1 голос
/ 16 июля 2010

Попробуйте сделать следующее:

  1. Удалить TortoiseHG
  2. Перезагрузите систему (в основном, чтобы убедиться, что в черепахе нет процессов, таких как мониторинг файлов, которые могут блокировать файлы)
  3. Intall командная строка hg
  4. делать обычные hg commit -m "yourmessage"

Если это работает, более вероятно, что инструмент мониторинга из TortoiseHg удерживает блокировкув каком-то файле (апплет в системном трее).

Также может случиться так, что кто-то другой делает, кроме (не TortoiseHg), например, редактор?инструмент сравнения?и т. д.

Наконец, еще одна причина, по которой это может произойти: кто-то дурачится с файлами репо внутри каталога .hg ... Хотя, похоже, это не так

...