Wie legen Sie den Benutzernamen fest, den Mercurial für Commits verwendet?


78

Wenn ich in Mercurial so etwas begebe:

hg commit -m "username question"

Ich sehe diese Ausgabe:

No username found, using 'WindowsVistaAdmin@ChunkyMonkey' instead

ChunkyMonkeyist mein Windows-Computername und offensichtlich WindowsVistaAdminder Benutzer, bei dem ich auf diesem Computer angemeldet bin.

Wie kann ich den Benutzernamen auf einen seriöseren oder zumindest prägnanteren Namen setzen?

Antworten:


117

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

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

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


3
Unter OSX 10.8 musste ich die .hgrc-Datei selbst erstellen.
Graham P Heath

Ab Version 2.0 wurde der Befehl TortoiseHg in geändert thg.
Geronimo

30

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

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

Tatsächlich können Sie mit diesem Befehl alles in Ihrer .hgrc überschreiben. Schauen Sie sich einfach Ihre .hgrc an und notieren Sie das Format:

[section]
key=val

das übersetzt direkt zu

hg --config section.key=val

Perfekt, um die Änderungen eines anderen Entwicklers in das Repo einzufügen!
Salbei

Aus welchem ​​möglichen Grund ist dies nicht in der Dokumentation / Hilfe von mercurial enthalten? Ich dachte , ich könnte dies tun, aber fast gelöst Denken Mercurial nur zurückgeblieben war und ließ es nicht zu , wenn ich nicht über sie gefunden habe hg config -h, hg config -h --verbose, hg help config, noch online unter selenic.com/mercurial/hg.1.html#config
Naki

1
Vergiss es. Sie sagten --configeher als config: Es ist eine Option für andere Befehle, die zum Überschreiben auf Befehlsebene verwendet werden ... immer noch nicht das, was ich will. GRRR .... Warum kann ich nicht geben Sie einfach hg config -l ui.username=username for this repo. Dies würde die einfache Implementierung von Aliasnamen zur Identitätseinstellung ermöglichen : [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

Informationen von hier :

Einrichten eines Benutzernamens

Wenn Sie versuchen, hg commit zum ersten Mal auszuführen, ist der Erfolg nicht garantiert. Mercurial zeichnet Ihren Namen und Ihre Adresse bei jeder Änderung auf, die Sie festschreiben, damit Sie und andere später feststellen können, wer die einzelnen Änderungen vorgenommen hat. Mercurial versucht automatisch, einen vernünftigen Benutzernamen zu finden, mit dem die Änderung übernommen werden soll. Es wird jede der folgenden Methoden der Reihe nach versucht:

  1. Wenn Sie in der Befehlszeile eine Option -u für den Befehl hg commit angeben, gefolgt von einem Benutzernamen, hat dies immer die höchste Priorität.
  2. Wenn Sie die Umgebungsvariable HGUSER festgelegt haben, wird dies als Nächstes überprüft.
  3. Wenn Sie in Ihrem Home-Verzeichnis eine Datei mit dem Namen .hgrc mit einem Benutzernameneintrag erstellen, wird diese als Nächstes verwendet. Informationen zum Inhalt dieser Datei finden Sie im Abschnitt „Erstellen einer Mercurial-Konfigurationsdatei“ weiter unten.
  4. Wenn Sie die Umgebungsvariable EMAIL festgelegt haben, wird diese als Nächstes verwendet.
  5. Mercurial fragt Ihr System ab, um Ihren lokalen Benutzernamen und Hostnamen herauszufinden, und erstellt aus diesen Komponenten einen Benutzernamen. Da dies häufig zu einem Benutzernamen führt, der nicht sehr nützlich ist, wird eine Warnung ausgegeben, wenn dies erforderlich ist.

Wenn alle diese Mechanismen fehlschlagen, schlägt Mercurial fehl und gibt eine Fehlermeldung aus. In diesem Fall können Sie erst festschreiben, wenn Sie einen Benutzernamen eingerichtet haben.

Sie sollten sich die Umgebungsvariable HGUSER und die Option -u für den Befehl hg commit als Möglichkeiten vorstellen, die Standardauswahl des Benutzernamens von Mercurial zu überschreiben. Für den normalen Gebrauch ist es am einfachsten und robustesten, einen Benutzernamen für sich selbst festzulegen, indem Sie eine .hgrc-Datei erstellen. siehe unten für Details.


7
Gibt es eine Möglichkeit, einen Benutzernamen per Repository festzulegen?
Edomaur

4
@edomaur, ja, es ist, Sie müssen die ./hg/hgrcDatei in dem fraglichen Repository bearbeiten , wo Sie username = Dev serverim [ui]Abschnitt
user907860

10
Stackoverflow wurde erstellt, da Google keine Informationen in einem präzisen und verdaulichen Format bereitstellt.
Sebastian Patten

3

So sieht meine Windows /users/xxx/mercurial.ini aus. Ich muss für nichts einen Benutzernamen oder ein Passwort eingeben. Sieht so aus, als wäre es repospezifisch. Ich habe tortoiseHG installiert und bin mir nicht sicher, ob das einen Unterschied macht.

[ui]
username=mbroekhuis

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

1
Ich halte es nicht für eine gute Idee, Ihr Passwort im Klartext zu haben.
Mo2

Ich würde eher zustimmen. Sie können diesen Teil weglassen.
Matt Broekhuis

2

Für alle, die versuchen, die HG Workbench zu verwenden

die Einstellungen

Geben Sie hier die Bildbeschreibung ein

Globale Benutzereinstellungen

Geben Sie hier die Bildbeschreibung ein

Datei bearbeiten

Geben Sie hier die Bildbeschreibung ein

sparen

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.