TortoiseHg не может зафиксировать -"Система не может найти указанный файл"
Я просто взял TortoiseHg для использования для управления распределенным исходным кодом в Windows и установил его на свой диск C. Затем я создал репозиторий (расположенный в D:\projects).
Когда я пытаюсь зафиксировать изменения, выдает ошибку
"abort: None: система не может найти указанный файл"
в новом окне с названием "Commit". Это приводит к прерыванию фиксации. Он не указывает ни один файл, и когда я запускаю 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 ответа
Попробуй это:
- Удалить черепаху HG
- Перезапустите систему (в основном, чтобы убедиться в отсутствии процессов от черепахи, таких как мониторинг файлов, которые могут блокировать файлы)
- Интал командная строка HG
- делать регулярные
hg commit -m "yourmessage"
Если это работает, скорее всего, инструмент мониторинга от TortoiseHg удерживает блокировку какого-либо файла (апплета в системном трее).
Это также может быть случай, когда кто-то другой делает (не TortoiseHg), например, редактор? инструмент сравнения? так далее?
Наконец, еще одна причина, по которой это может произойти: кто-то дурачится с файлами репо внутри каталога.hg... Хотя, похоже, это не так
Я знакомлюсь с Hg и пробую Tortoise-Hg, и я бегу к той же проблеме, что и OP. Я клонировал репозиторий из одного проекта с открытым исходным кодом и внес некоторые изменения в исходный код. Однако, когда я пытаюсь зафиксировать, я получаю следующее сообщение из диалогового окна фиксации:
abort: None: система не может найти указанный файл
Переход к командной строке и использование hg commit -m "message" работает. Я использую это под 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 не настроен должным образом.
Я надеюсь, что это решит проблему для ОП и других, которые сталкиваются с этой проблемой и пытаются ее исправить.