Ошибка Mercurial: прерывание без указания имени пользователя

117

Проблема с WindowsXP (вероятно, произойдет при всех установках Win) при первом использовании Mercurial. Я нашел ответ в неочевидном месте, поэтому я сам задаю / отвечаю на вопрос, чтобы другим не приходилось искать, как я.

Первое использование Mercurial на машине.

Добавить новый репозиторий:

c:\bla\>hg add

без проблем.

Затем зафиксируйте:

c:\bla\hg commit

ошибка:

abort: имя пользователя не указано (см. "hg help config")

Кевин Вон
источник
70
Как информация об утилите управления версиями не связана с программированием?
mipadi
5
@mipadi: Точно так же, как информация об использовании клавиатуры не связана с программированием.
Draemon
Для Mecurial это действительно синяк под глазом, что прошло более двух лет, а эта проблема все еще существует.
Celeritas
Где проклятый файл в Cygwin ??! ... Ой. Если репо клонировано или инициализировано, оно есть в (репо) /.
Hg

Ответы:

94

Решение:

В моей установке Windows файл Mercurial.iniне распространялся. К нему также нужно добавить адрес электронной почты пользователя.

Возьмите Mercurial.iniфайл по умолчанию, находящийся в каталоге установки исполняемого файла Mercurial ( C:\Program Files\Mercurial\Mercurial.iniна моем компьютере), и скопируйте его в домашний каталог пользователя ( C:\Documents and Settings\myNameна winXP).

При установке Windows 7 нет .ini по умолчанию, вам нужно будет создать новый в формате C:\Users\myName.

Затем отредактируйте этот файл .ini. Найдите эту область. Для имени пользователя необходимо указать адрес электронной почты. Он будет пустым - добавьте сюда свой адрес электронной почты.

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

Это устранило проблему для меня.

Кевин Вон
источник
1
Я разместил этот вопрос / ответ, чтобы, надеюсь, помочь кому-то в будущем не тратить время на этот самородок.
Кевин Вон,
4
На самом деле в моем установочном каталоге тоже нет файла Mercurial.ini. Добавление файла, названного hgrcв .hgпапке моего репозитория с указанным выше текстом, позволило мне зафиксировать изменения.
Фил Ган
2
В моем установочном каталоге нет файла Mercurial.ini (64-разрядная версия Win 7). Я создал Mercurial.ini на C: \ Users \ Abbas и скопировал фрагмент [ui] Кевина, и он отлично сработал. Пробовал решение Фила, и оно тоже сработало.
Аббас
Спасибо за вопрос и ответ. Мне потребовался бы возраст, чтобы понять это. Ах, трудности разработки под Windows ...
Уэс,
Я использую Tortoise Hg, и этот совет мне тоже помогает. Спасибо !
Джеймс Фрейтас,
51

Извините, но почему вы называете это проблемой? Mercurial просит вас посмотреть hg help config, и в этом тексте справки подробно рассказывается, как добавить имя пользователя - я знаю, так как написал этот текст справки :-)

Как нам улучшить сообщение об ошибке, чтобы сделать его более понятным?

Изменить: поскольку я написал это в 2010 году, нам удалось облажаться, hg help configвключив справку для всех настроек конфигурации. Итак, небольшой приятный пример того, как установить имя пользователя:

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

теперь теряется в шуме (добавьте это ~/.hgrc, создав файл, если необходимо). Я открыл для этого вопрос .

Мартин Гейслер
источник
1
Спасибо за объяснение - так приятно видеть, когда люди отвечают на вопросы, связанные с найденным решением :-) Тем не менее, текст справки hg help configдля Windows включает инструкции для Windows, т. Е. Перечисляет возможные местоположения вашего Mercurial.iniфайла. Одно из расположений C:\Program Files\Mercurial\Mercurial.ini(указано как <install-dir>\Mercurial.ini), поэтому я не уверен, почему настройки в этом файле не вступили в силу.
Мартин Гейслер,
13
Большой проблемой для меня (и что привело меня к этому вопросу) было то, что ничего из этого не упоминается на странице быстрого старта: mercurial.selenic.com/quickstart/# . Эта страница подразумевает, что базовая установка с последующим выполнением инструкций будет работать, и это не так, если не читать текст справки. В этот момент вы нервничаете, потому что уже предполагаете, что что-то пошло не так,
Ник Фортескью
7
@Martin Geisler: В hg help configтексте не сказано, что нам нужно сделать для решения проблемы, и не совсем ясно, куда указывают пути в разделе «В Windows». Куда девать %USERPROFILE%или %HOME%указывать? Думаю, не помогает то, что mercurial.iniв моей системе не существует следующей установки .
Фил Ган
8
Не хочу быть оскорбительным, поэтому примите это как конструктивную попытку. Ответ может быть в 1260 строках текста, которые распечатываются в соответствии со стандартом, когда я выполняю «hg help config», но я действительно думаю, что 1260 строк текста являются чрезмерными и это короткий отчетливый ответ, даже если он отправляет меня на документы были бы намного лучше.
Тони Джакконе
4
@TonyGiaccone: Еще в 2010 году hg help configпечатал только экран, полный текста, и я позаботился о том, чтобы установка имени пользователя была основным примером в этом тексте. С тех пор нам удалось облажаться, включив в этот вывод текст справки для всех параметров конфигурации :-( Я открыл проблему для этого: mercurial.selenic.com/bts/issue3348
Мартин Гейслер
13

В Windows XP я не вижу ini-файла. После создания хранилища с помощью команды hg init, я добавил файл с именем hgrcв папке.hg

Со следующим содержанием:

[ui]  
editor = notepad  
username = zamboni@icemachine.com
Zamboni
источник
1
упоминание hgrcв .hgпапке было полезным
E-rich
9

независимо от того, Windows или Linux, hg просматривает файл "/.hg/hgrc" на предмет правильной конфигурации. Как сказано в "hg help config", вам нужно только добавить в конец этого файла следующие строки:

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

сохранить и "hg commit -m 'test'"

Новичок
источник
4

Если вы используете TortoiseHg, вы можете легко добавить настройки [UI]

  1. Щелкните правой кнопкой мыши в любом проводнике папок, чтобы открыть меню TortoiseHg .

  2. Во всплывающем меню TortoiseHg выберите Глобальные настройки.

  3. В интерфейсе нажмите Редактировать файл

  4. Добавьте настройки [UI] в конец

[Ui]

username = YourName

verbose = true

  1. Сохраните, и все готово
Пол Ноймайер
источник
3

Вот что мне понравилось в Windows XP:

  1. Перейдите в папку, C:\Program Files\Mercurial\hgrc.dесли вы установили Mercurial в C:\Program Files\Mercurial\.
  2. Вы должны увидеть там Mercurial.RCфайл.
  3. Скопируйте файл в C:\Documents and Settings\ [USERNAME]\
  4. Переименовать Mercurial.RCв Mercurial.ini.
  5. Отредактируйте раздел [ui] следующим образом:

    [Ui]

    ; редактор, используемый для ввода журналов фиксации и т. д. Большинство текстовых редакторов будут работать.

    редактор = блокнот

    verbose = True

    username = userEmail@domain.com

Ральф Виггам
источник
Также работает для Windows Server 2008 и 64-битного Mercurial msi, за исключением, конечно, шага 3 c: \ users [имя пользователя]
Эндрю Коуэнховен,
После установки «TortoiseHg 2.2 с Mercurial 2.0 - x86 Windows» файл Mercurial.RC можно найти в папке C: \ Program Files \ TortoiseHg \ hgrc.d
urig
1

У меня такая же проблема. Что мне помогло, так это размещение [ui]и username = firstname lastnameна отдельных строках ~/.hgrcфайла. Размещение этих двух вещей в одной строке не сработало и привело к ошибке.

Матиас Веллнер
источник
1

Эта проблема все еще существует. mercurial.iniФайл игнорируется независимо от того , где вы положили его.

Нет mercurial.iniфайлы не создаются во время установки. Я создал его в каталоге установки Mercurial, но он не дал никакого эффекта. Я скопировал его в, %USERPROFILE%а затем в %HOME%, но ни один из них не работает.

Помещение .hgrcв каталог HOME работает.

Документация ("hg help config") требует исправления.

Дин Шульце
источник
1

Настройте .hgrc следующим образом:

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

НОТА!! Не упускайте часть [ui]

Wedava
источник
0

Это проблема, потому что в файле справки путь к указанному файлу конфигурации не существует, мы должны скопировать Mercurial.ini каталог из программных файлов в каталог USER, возможно, это проблема, исходящая от установщика в Windows.

@ Кевин Вон: вы забыли добавить строчку:

verbose = True
Пьер Дюшер
источник