2009-09-09 2 views
60

Wenn ich etwas in Mercurial wie diese begehen:Wie legen Sie den Benutzernamen fest, den Mercurial für Commits verwendet?

hg commit -m "username question" 

Ich sehe diese Ausgabe:

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

ChunkyMonkey ist der Name meiner Windows-Maschine und offensichtlich WindowsVistaAdmin ist der Benutzer, die ich unterzeichnet habe in als auf diese Maschine.

Wie kann ich den Benutzernamen auf etwas respektabler oder zumindest prägnanter setzen?

Antwort

95

In Ihrem ~/.hgrc (* nix) oder mercurial.ini (Windows) Datei.

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

(mercurial.ini in C:\Documents and Settings\[username]\ für XP und niedriger, C:\Users\[username]\ für Vista und höher Sie können auch hgtk userconfig ausführen, wenn Sie TortoiseHg haben installiert und es auf diese Weise tun)

+2

Auf OSX 10.8, hatte ich die .hgrc Datei selbst zu machen. –

15

Informationen vom here.

Einrichten eines Benutzernamens

Wenn Sie versuchen, hg commit für die zum ersten Mal ausführen, ist es nicht garantiert, erfolgreich. Mercurial speichert Ihren Namen und Adresse mit jeder Änderung, die Sie commit, so dass Sie und andere später in der Lage sein wird zu sagen, wer jede Änderung vorgenommen hat. Mercurial versucht automatisch einen sinnvollen Benutzernamen herauszufinden, um die Änderung mit zu übernehmen. Es wird jede der folgenden Methoden versuchen, in dieser Reihenfolge:

  1. Wenn Sie eine Option -u zum hg commit Befehl auf der Kommandozeile angeben, durch einen Benutzernamen gefolgt, das ist immer die höchste gegeben Vorrang.
  2. Wenn Sie die HGUSER-Umgebungsvariable festgelegt haben, wird dies als nächstes überprüft.
  3. Wenn Sie eine Datei in Ihrem Home-Verzeichnis namens .hgrc mit einem Benutzernamen erstellen, wird dieser als Nächstes verwendet. Um zu sehen, wie der Inhalt dieser Datei aussehen sollte, siehe den Abschnitt namens "Erstellen einer Mercurial Konfigurationsdatei" unten.
  4. Wenn Sie die EMAIL-Umgebungsvariable festgelegt haben, wird dies als nächstes verwendet.
  5. Mercurial wird Ihr System abfragen, um Ihren lokalen Benutzernamen und den Hostnamen herauszufinden, und einen Benutzernamen aus diesen Komponenten erstellen. Da dieser oft zu einem Benutzernamen führt, der nicht sehr nützlich ist, wird es eine Warnung ausgeben, wenn es dies tun muss.

Wenn alle diese Mechanismen versagen, wird Mercurial scheitern, Drucken eines Fehler Nachricht.In diesem Fall wird Sie nicht übergeben, bis Sie einen Benutzernamen einrichten.

sollten Sie denken an dem HGUSER Umgebungsvariable und die Option -u zum hg Befehl als Möglichkeiten, um Überschreibung Mercurial Standardauswahl von Benutzername begehen. Für den normalen Gebrauch ist die einfachste und robusteste Möglichkeit, einen Benutzernamen für sich selbst festzulegen, indem Sie eine .hgrc Datei erstellen; Details siehe unten.

+7

Gibt es eine Möglichkeit, einen Benutzernamen nach Repository zu setzen? – edomaur

+4

@edomaur, ja es ist, müssen Sie die './Hg/hgrc' Datei im fraglichen Repository bearbeiten, wo Sie' username = Dev Server 'in der' [ui] 'Abschnitt – user907860

+10

Stackoverflow wurde als erstellt Google bietet keine Informationen in einem übersichtlichen und leicht verständlichen Format. –

2

Hier ist wie meine Windows /users/xxx/mercurial.ini aussieht. Ich muss keinen Benutzernamen oder Passwörter für irgendetwas eingeben. Sieht aus, als wäre es Repo-spezifisch. Ich habe TortoiseHG installiert, bin mir nicht sicher, ob das einen Unterschied macht.

+1

Ich glaube nicht, dass Sie Ihr Passwort im Klartext haben, ist eine gute Idee. – Mo2

+0

würde ich eher zustimmen. Sie können diesen Teil weglassen. –

22

Sie können Ihren Benutzernamen direkt in der Befehlszeile angeben, wenn Sie --config verwenden möchten. zB

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

In der Tat können Sie alles in Ihrer .hgrc mit diesem Befehl überschreiben. nur Blick auf Ihre .hgrc und beachten Sie das Format:

[section] 
key=val 

, die direkt an

hg --config section.key=val 
+0

Perfekt zum Einfügen der Änderungen eines anderen Entwicklers in das Repo! – sage

+0

Aus welchem ​​Grund ist dies nicht in der Dokumentation/Hilfe von mercurial enthalten? Ich dachte, ich könnte das tun, aber fast entschlossen zu denken, mercurial war nur zurückgeblieben und erlaubte es nicht, wenn ich es nicht über 'hg config -h',' hg config -h-verbose', 'hg help Config', noch online unter https://www.selenic.com/mercurial/hg.1.html#config – naki

+0

Oh ... vergiss es. Sie haben '--config' anstelle von' config' angegeben: Es ist eine Option für andere Befehle, die für das Überschreiben auf Befehlsebene verwendet werden ... immer noch nicht das, was ich möchte. GRRR .... Warum kann ich nicht einfach 'hg config -l ui.username = Benutzername für diesen Repo 'eingeben. Dies würde die einfache Implementierung von Identity-Setting-Aliases ermöglichen: '[alias] identity1 = config -l ui.username = meine bereits geschriebenen Benutzerinformationen, die alle zur Verwendung für viele neu geklonte Repos mit verschiedenen zugeordneten Identitäten bestimmt sind. – naki

1

Für jedermann übersetzt versucht

Einstellungen HG Werkbank

enter image description here

zu verwenden Benutzer globale Einstellungen

enter image description here

Datei bearbeiten

enter image description here

speichern

Verwandte Themen