Як встановити ім’я користувача, яке Mercurial використовує для комітів?


79

Коли я роблю щось у Mercurial так:

hg commit -m "username question"

Я бачу цей результат:

No username found, using 'WindowsVistaAdmin@ChunkyMonkey' instead

ChunkyMonkeyце моє ім'я машини Windows, і, очевидно, WindowsVistaAdminце користувач, яким я ввійшов як на цій машині.

Як я можу встановити ім’я користувача на щось більш респектабельне або, принаймні, більш стисле?

Відповіді:


118

У вашому ~/.hgrc(* nix) або mercurial.ini(Windows) файлі:

[ui]
username = First Last <email@address.com>

( mercurial.iniє C:\Documents and Settings\[username]\для XP і нижче, C:\Users\[username]\для Vista і вище. Ви також можете запустити, hgtk userconfigякщо у вас встановлений TortoiseHg, і зробити це таким чином.)


3
На OSX 10.8 мені довелося самостійно створити файл .hgrc.
Graham P Heath

Для версій 2.0 та новіших команду TortoiseHg змінили на thg.
Джеронімо

30

Ви можете вказати своє ім'я користувача в командному рядку безпосередньо, якщо хочете використовувати --config. напр

hg --config ui.username=frymaster -m "comment here" commit

насправді, за допомогою цієї команди ви можете замінити будь-що у своєму .hgrc. просто подивіться на ваш .hgrc і зверніть увагу на формат:

[section]
key=val

що перекладається безпосередньо на

hg --config section.key=val

Ідеально підходить для вставки змін іншого розробника в репо!
мудрець

З якої можливої ​​причини цього немає у документації / довідці mercurial? Я думав , що я міг би зробити це, але майже вирішив мислення ртутного просто відстала і не дозволяв, коли я не знайшов його через hg config -h, hg config -h --verbose, hg help config, ні в Інтернеті по адресою selenic.com/mercurial/hg.1.html#config
naki

1
О ... неважливо. Ви сказали, --configа не config: це варіант для інших команд, що використовується для заміни рівня команди ... все ще не те, що я хочу. GRRR .... Чому я не можу просто ввести hg config -l ui.username=username for this repo. Це дозволило б легко реалізації ідентичності встановлюють псевдонімів: [alias] identity1=config -l ui.username=my prewritten user info all ready to be designated for use on of many newly cloned repos with various identities associated.
naki

16

Інформація звідси :

Налаштування імені користувача

При першій спробі запустити коміт hg це не гарантує успіху. Mercurial фіксує ваше ім’я та адресу під час кожної зміни, яку ви вчинили, так що ви та інші зможете згодом визначити, хто вніс кожну зміну. Mercurial намагається автоматично з'ясувати розумне ім'я користувача, щоб здійснити зміну. Він спробує виконати кожен із наступних методів у порядку:

  1. Якщо ви вказали параметр -u для команди hg commit у командному рядку, а потім ім'я користувача, це завжди має найвищий пріоритет.
  2. Якщо ви встановили змінну середовища HGUSER, це перевіряється далі.
  3. Якщо ви створите файл у своєму домашньому каталозі під назвою .hgrc із введенням імені користувача, який буде використаний далі. Щоб побачити, як повинен виглядати вміст цього файлу, зверніться до розділу „Створення файлу конфігурації Mercurial” нижче.
  4. Якщо ви встановили змінну середовища EMAIL, це буде використано далі.
  5. Mercurial запитає вашу систему, щоб з’ясувати ваше місцеве ім’я користувача та ім’я хосту, та створить ім’я користувача з цих компонентів. Оскільки це часто призводить до імені користувача, яке є не дуже корисним, воно надрукує попередження, якщо йому потрібно це зробити.

Якщо всі ці механізми виходять з ладу, Mercurial вийде з ладу, надрукувавши повідомлення про помилку. У цьому випадку це не дозволить вам здійснити комітування, поки ви не встановите ім’я користувача.

Вам слід подумати про змінну середовища HGUSER та параметр -u для команди hg commit як про способи перевизначення типового вибору імені користувача Mercurial. Для звичайного використання найпростіший і надійний спосіб встановити ім’я користувача - це створити файл .hgrc; докладніше див. нижче.


7
чи є можливість встановити ім'я користувача за сховищем?
edomaur

4
@edomaur, так це, ви повинні відредагувати ./hg/hgrcфайл у відповідному сховищі, де вам потрібно встановити username = Dev serverв [ui]розділі
Дмитро Корольов

10
Stackoverflow було створено, оскільки Google не надає інформацію у стислому та засвоюваному форматі.
Себастьян Паттен

3

Ось як виглядає моя windows /users/xxx/mercurial.ini. Мені нічого не потрібно вводити ім’я користувача чи паролі. Схоже, це може бути специфічним для репо. Я встановив tortoiseHG, не впевнений, чи це щось змінює.

[ui]
username=mbroekhuis

[auth]
repo.prefix=http://myrepo
repo.username=mbroekhuis
repo.password=secret

1
Я не думаю, що ваш пароль у відкритому тексті - це гарна ідея.
Mo2

я би, як правило, погодився. цю частину можна опустити.
Matt Broekhuis,

2

Для тих, хто намагається використовувати робочий стіл HG

налаштування

введіть тут опис зображення

загальні налаштування користувача

введіть тут опис зображення

Редагувати файл

введіть тут опис зображення

Зберегти

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.