2009-09-09 4 views
60

Quand je commets quelque chose dans Mercurial comme ceci:Comment définissez-vous le nom d'utilisateur que Mercurial utilise pour les validations?

hg commit -m "username question" 

Je vois cette sortie:

No username found, using '[email protected]' instead 

ChunkyMonkey est mon nom de machine Windows et évidemment WindowsVistaAdmin est l'utilisateur que je suis connecté comme sur cette machine.

Comment puis-je définir le nom d'utilisateur pour quelque chose de plus respectable, ou, au moins, plus concis?

Répondre

95

Dans votre ~/.hgrc (* nix) ou mercurial.ini fichier (Windows).

[ui] 
username = First Last <[email protected]> 

(mercurial.ini est en C:\Documents and Settings\[username]\ pour XP et inférieur, C:\Users\[username]\ pour Vista et supérieur Vous pouvez également exécuter hgtk userconfig si vous avez TortoiseHg installé et le faire de cette façon)

+2

Sur Mac OS X 10.8, je devais faire le .hgrc moi-même fichier. –

15

Informations here:.

Configuration d'un nom d'utilisateur

Lorsque vous essayez d'exécuter hg commit pour la première fois, il n'est pas garanti que réussisse. Mercurial enregistre votre nom et adresse à chaque modification que vous commit, de sorte que vous et d'autres puissiez ensuite dire . Mercurial essaie de automatiquement trouver un nom d'utilisateur sensible à commettre le changement avec. Il tentera chacune des méthodes suivantes, dans l'ordre:

  1. Si vous spécifiez une option -u à ​​la commande hg commit sur la commande ligne, suivi d'un nom d'utilisateur, c'est toujours donné la plus haute priorité.
  2. Si vous avez défini la variable d'environnement HGUSER, celle-ci est cochée ensuite.
  3. Si vous créez un fichier dans votre répertoire de base appelé .hgrc, avec une entrée de nom d'utilisateur , cela sera utilisé suivant. Pour voir à quoi devrait ressembler le contenu de ce fichier , reportez-vous à la section intitulée "Création d'un fichier de configuration Mercurial " ci-dessous.
  4. Si vous avez défini la variable d'environnement EMAIL, celle-ci sera utilisée ensuite.
  5. Mercurial interrogera votre système pour trouver votre nom d'utilisateur local et le nom d'hôte , et construira un nom d'utilisateur à partir de ces composants. Puisque ce résulte souvent en un nom d'utilisateur qui est pas très utile, il va imprimer un avertissement s'il doit le faire.

Si tous ces mécanismes échouent, Mercurial échouera, l'impression d'un message d'erreur .Dans ce cas, il ne laissera pas valider jusqu'à ce que vous définissiez un nom d'utilisateur .

Vous devriez penser à la HGUSER variable d'environnement et l'option -u à la hg commande commit comme moyens de remplacement sélection par défaut de la Mercurial du nom d'utilisateur. Pour une utilisation normale, le moyen le plus simple et le plus robuste pour définir un nom d'utilisateur pour vous-même est en créant un fichier .hgrc ; voir ci-dessous pour plus de détails.

+7

est-il possible de définir un nom d'utilisateur par référentiel? – edomaur

+4

@edomaur, oui c'est, vous devez éditer le fichier './Hg/hgrc' dans le dépôt en question, où vous devez définir' username = Dev server' dans la section '[ui]' – user907860

+10

Stackoverflow a été créé comme Google ne fournit pas d'informations dans un format concis et digestible. –

2

Voici à quoi ressemble mon fichier windows /users/xxx/mercurial.ini. Je n'ai pas à entrer de nom d'utilisateur ou de mot de passe pour quoi que ce soit. On dirait que cela pourrait être spécifique au repo. J'ai tortoiseHG installé, je ne sais pas si cela fait une différence.

[ui] 
username=mbroekhuis 

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

Je ne pense pas que votre mot de passe en clair est une bonne idée. – Mo2

+0

je serais d'accord. vous pouvez omettre cette partie. –

22

Vous pouvez spécifier votre nom d'utilisateur directement sur la ligne de commande si vous voulez utiliser --config.

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

En fait, vous pouvez surcharger n'importe quoi dans votre fichier .hgrc avec cette commande. il suffit de regarder à votre .hgrc et notez le format:

[section] 
key=val 

qui se traduit directement à

hg --config section.key=val 
+0

Parfait pour insérer les changements d'un autre développeur dans le repo! – sage

+0

Pour quelle raison n'est-ce pas dans la documentation/l'aide de mercurial? Je pensais que je pouvais le faire, mais presque résolu à penser mercurial était juste retardé et ne l'autorisait pas quand je ne l'ai pas trouvé via 'hg config -h',' hg config -h --verbose', 'hg aider config', ni en ligne sur https://www.selenic.com/mercurial/hg.1.html#config – naki

+0

Oh ... passons. Vous avez dit '--config' plutôt que' config': c'est une option pour les autres commandes, utilisée pour le remplacement de niveau commande ... toujours pas ce que je veux. GRRR .... Pourquoi ne puis-je pas taper 'hg config -l ui.username = nom d'utilisateur pour ce repo'. Cela permettrait une implémentation facile des alias de définition d'identité: '[alias] identity1 = config -l ui.username = mes informations d'utilisateur pré-écrites sont prêtes à être utilisées pour de nombreux repos nouvellement clonés avec des identités diverses '. – naki

1

Pour tous ceux qui essaient d'utiliser HG établi

paramètres

enter image description here

paramètres globaux utilisateur

enter image description here

Modifier fichier

enter image description here

Enregistrer

Questions connexes