2009-09-09 12 views
60

Kiedy popełnić coś w Mercurial takiego:Jak ustawić nazwę użytkownika, której Mercurial używa do zatwierdzania?

hg commit -m "username question" 

widzę tego wyjścia:

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

ChunkyMonkey jest moja nazwa komputera z systemem Windows i oczywiście WindowsVistaAdmin jest użytkownik, że jestem zalogowany jako na ten maszyna.

Jak ustawić nazwę użytkownika na coś bardziej godnego szacunku, a przynajmniej bardziej zwięzłego?

Odpowiedz

95

W swojej ~/.hgrc (* nix) lub mercurial.ini pliku (Windows).

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

(mercurial.ini w C:\Documents and Settings\[username]\ dla XP i niższy, C:\Users\[username]\ dla Vista i wyższym można również uruchomić hgtk userconfig jeśli masz TortoiseHg zainstalowane i zrobić to w ten sposób)

+2

Na OSX 10.8, musiałem zrobić .hgrc się złożyć. –

15

Informacje z here.

Konfigurowanie nazwy użytkownika

Podczas próby uruchomienia narzędzia hg commit dla po raz pierwszy nie można zagwarantować, że zakończy się pomyślnie. Mercurial rejestruje twoje imię i nazwisko oraz adres z każdą zmianą, którą ty zatwierdzasz, abyś Ty i inni mogli później stwierdzić, kto dokonał każdej zmiany . Mercurial próbuje automatycznie uzyskać sensowną nazwę użytkownika , aby zatwierdzić zmianę. To będzie próbować każdego z następujących metod, w celu:

  1. Jeśli określisz opcję -u do Hg popełnić polecenia w wierszu polecenia , a następnie nazwę użytkownika, to zawsze podane najwyższa precedens.
  2. Jeśli ustawiłeś zmienną środowiskową HGUSER, jest ona sprawdzana następująco: .
  3. Jeśli utworzysz plik w swoim katalogu domowym o nazwie .hgrc, o nazwie użytkownika , który zostanie użyty jako następny: . Aby sprawdzić, jak powinna wyglądać zawartość tego pliku , zobacz sekcję o nazwie "Tworzenie pliku Mercurial " poniżej.
  4. Jeśli ustawiono zmienną środowiskową EMAIL, zostanie ona później użyta jako .
  5. Urządzenie Mercurial prześle zapytanie do systemu, aby znaleźć nazwę użytkownika lokalnego i nazwę hosta i skonstruować nazwę użytkownika z tych składników. Ponieważ ten często powoduje, że nazwa użytkownika, która jest niezbyt przydatna, wydrukuje ostrzeżenie , jeśli ma to zrobić.

Jeśli wszystkie te mechanizmy zawiodą, Mercurial zawiedzie, drukując komunikat o błędzie .W takim przypadku nie zezwolisz na wykonanie , dopóki nie ustawisz nazwy użytkownika .

Powinieneś pomyśleć o zmiennej środowiskowej HGUSER i opcją -u do Hg polecenie commit jako sposoby zastąpić domyślne Mercurial za wybór z nazwą użytkownika. W przypadku normalnego użytkowania najprostszym i najsolidniejszym sposobem ustawienia nazwy użytkownika jest utworzenie pliku .hgrc; patrz poniżej, aby uzyskać szczegółowe informacje.

+7

Czy istnieje możliwość ustawienia nazwy użytkownika przez repozytorium? – edomaur

+4

@edomaur, tak to jest, musisz edytować plik './Hg/hgrc' w odpowiednim repozytorium, w którym musisz ustawić' nazwa_użytkownika = serwer dev' w sekcji '[ui]' – user907860

+10

Stackoverflow został stworzony jako Google nie dostarcza informacji w zwięzłym i przystępnym formacie. –

2

Oto, jak wygląda moje okno /users/xxx/mercurial.ini. Nie muszę wpisywać nazwy użytkownika ani haseł do niczego. Wygląda na to, że może to być specyficzne dla repo. Mam zainstalowane tortoiseHG, nie jestem pewien, czy to ma jakieś znaczenie.

[ui] 
username=mbroekhuis 

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

Nie sądzę, aby posiadanie hasła w postaci zwykłego tekstu było dobrym pomysłem. – Mo2

+0

Zwykle zgadzam się. możesz pominąć tę część. –

22

możesz podać swoją nazwę użytkownika bezpośrednio w linii poleceń, jeśli chcesz użyć --config. np.

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

w rzeczywistości można zastąpić wszystko w .grc za pomocą tego polecenia. wystarczy spojrzeć na swojej .hgrc i zanotować format:

[section] 
key=val 

że przekłada się bezpośrednio na

hg --config section.key=val 
+0

Idealny do wstawiania zmian innego dewelopera do repozytorium! – sage

+0

Z jakiego powodu jest to niezgodne z dokumentacją/pomocą mercury? Myślałem, że mogę to zrobić, ale prawie postanowiłem myśleć, że mercurial był po prostu opóźniony i nie dopuścił go, gdy nie znalazłem go poprzez 'hg config -h',' hg config -h --verbose', 'hg help config', ani online na https://www.selenic.com/mercurial/hg.1.html#config – naki

+0

Och ... nieważne. Powiedziałeś '--config' zamiast' config': jest to opcja dla innych poleceń, używanych do nadrzędnego nadpisywania na poziomie poleceń ... wciąż nie tego, czego chcę. GRRR .... Dlaczego nie mogę po prostu wpisać 'hg config -l ui.username = username dla tego repo'. Umożliwiłoby to łatwe wdrażanie aliasów ustawień tożsamości: '[alias] identity1 = config -l ui.username = moje wstępnie napisane informacje o użytkowniku są gotowe do użycia w wielu nowo sklonowanych repo z powiązanymi różnymi tożsamościami". – naki

1

Dla każdego, kto próbuje użyć HG Workbench

ustawienia

enter image description here

globalne ustawienia użytkownika

enter image description here

Edit File

enter image description here

Zapisz

Powiązane problemy