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?

Zelt
quelle

Antworten:

117

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

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

( 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.)

tghw
quelle
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
Frymaster
quelle
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.

Andrew Flanagan
quelle
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
Matt Broekhuis
quelle
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

kuhajeyan
quelle