Błąd Mercurial: przerwij, nie podano nazwy użytkownika

117

Problem na WindowsXP (prawdopodobnie wystąpi przy wszystkich instalacjach Win) przy pierwszym użyciu Mercurial. Znalazłem odpowiedź w nieoczywistym miejscu, więc sam zadaję / odpowiadam na to pytanie, aby inni nie musieli szukać tak jak ja.

Pierwsze użycie Mercurial na komputerze.

Dodaj nowy repoz:

c:\bla\>hg add

nie ma problemu.

Następnie wykonaj:

c:\bla\hg commit

błąd:

abort: nie podano nazwy użytkownika (zobacz "hg help config")

Kevin Won
źródło
70
Dlaczego informacje o narzędziu do kontroli wersji nie są związane z programowaniem?
mipadi
5
@mipadi: W ten sam sposób informacje o używaniu klawiatury nie są związane z programowaniem.
Draemon
To naprawdę podbite oko dla Mecurial, że minęły już ponad dwa lata, a ten problem nadal istnieje.
Celeritas
Gdzie jest ten cholerny plik w Cygwin ??! ... Och. Jeśli repozytorium zostało sklonowane lub zainicjowane, jest jedno w (repo) /. Hg
luser droog Kwietnia

Odpowiedzi:

94

Rozwiązanie:

W mojej instalacji systemu Windows plik Mercurial.ininie został rozpowszechniony. Potrzebuje również dodanego do niego adresu e-mail użytkownika.

Weź domyślny Mercurial.iniplik znaleziony w katalogu instalacyjnym pliku wykonywalnego Mercurial ( C:\Program Files\Mercurial\Mercurial.inina moim komputerze) i skopiuj go do katalogu domowego użytkownika ( C:\Documents and Settings\myNamena winXP).

W instalacji systemu Windows 7 nie ma domyślnego pliku .ini, musisz utworzyć nowy w C:\Users\myName.

Następnie edytuj ten plik .ini. Znajdź ten obszar. Nazwa użytkownika wymaga ustawienia adresu e-mail. Będzie puste - dodaj tutaj swoją nazwę e-mail.

[ui]
; editor used to enter commit logs, etc.  Most text editors will work.
editor = notepad
username = [email protected]

To rozwiązało problem.

Kevin Won
źródło
1
Opublikowałem to pytanie i mam nadzieję, że pomogę komuś w przyszłości tracić czas na ten samorodek.
Kevin Wygrał
4
Właściwie nie ma również pliku Mercurial.ini w moim katalogu instalacyjnym. Dodanie pliku o nazwie hgrcw .hgfolderze mojego repozytorium z powyższym tekstem umożliwiło mi zatwierdzenie zmian.
Phil Gan
2
Brak pliku Mercurial.ini w moim katalogu instalacyjnym (Win 7 64-bit). Stworzyłem Mercurial.ini na C: \ Users \ Abbas i skopiowałem i wkleiłem fragment kodu [ui] Kevina i działał jak marzenie. Wypróbowałem rozwiązanie Phila i też zadziałało.
Abbas,
Dzięki za pytanie i odpowiedź. Wieki zajęłoby mi to rozgryzienie. Ach, trudności związane z programowaniem w systemie Windows ...
Wes,
Używam żółwia Hg i ta wskazówka też mi pomaga. Dzięki !
James Freitas
51

Przepraszam, ale dlaczego nazywasz to problemem? Mercurial prosi o pokazanie hg help config, a ten tekst pomocy wyraźnie mówi, jak dodać nazwę użytkownika - wiem, odkąd napisałem ten tekst pomocy :-)

Jak powinniśmy poprawić komunikat o błędzie, aby był bardziej zrozumiały?

Edycja: Odkąd napisałem to w 2010 roku, udało nam się to schrzanić, wprowadzając hg help configpomoc do wszystkich ustawień konfiguracji. A więc ładny mały przykład, jak ustawić nazwę użytkownika:

[ui]
username = Your Name <[email protected]>

jest teraz zagubiony w szumie (dodaj to ~/.hgrc, tworząc plik, jeśli to konieczne). Otworzyłem problem z tym.

Martin Geisler
źródło
1
Dziękuję za wyjaśnienie - miło jest widzieć, gdy ludzie odpowiadają na pytania dotyczące znalezionego rozwiązania :-) Jednak tekst pomocy hg help configzawiera instrukcje dla systemu Windows, tj. Zawiera listę możliwych lokalizacji twojego Mercurial.inipliku. Jedna z lokalizacji jest C:\Program Files\Mercurial\Mercurial.ini(wymieniona jako <install-dir>\Mercurial.ini), więc nie jestem pewien, dlaczego ustawienia w tym pliku nie zostały uwzględnione.
Martin Geisler
13
Dużym problemem dla mnie (i tym, co doprowadziło mnie do tego pytania) był fakt, że nic z tego nie zostało wspomniane na stronie szybkiego startu: mercurial.selenic.com/quickstart/# . Ta strona oznacza, że ​​instalacja podstawowa, po której następuje wykonanie instrukcji, będzie działać, i nie działa bez przeczytania tekstu pomocy. W tym momencie jesteś zdenerwowany, ponieważ już zakładasz, że coś poszło nie tak
Nick Fortescue
7
@Martin Geisler: hg help configTekst nie mówi, co musimy zrobić, aby rozwiązać problem, i nie jest szczególnie jasne, gdzie wskazują ścieżki w sekcji „W systemie Windows”. Gdzie robi %USERPROFILE%lub %HOME%wskazuje? Myślę, że nie pomaga to, że następująca instalacja mercurial.ininie istnieje nigdzie w moim systemie.
Phil Gan
8
Nie chcę być obraźliwy, więc potraktuj to jako próbę konstruktywności. Może być odpowiedź w 1260 liniach tekstu, które są drukowane do standardu, kiedy robię "hg help config", ale naprawdę uważam, że 1260 linii tekstu jest zbytecznych i że krótka, wyraźna odpowiedź, nawet jeśli wysyła mnie do dokumentacja byłaby znacznie lepsza.
Tony Giaccone
4
@TonyGiaccone: W 2010 roku hg help configwydrukowałem tylko ekran pełen tekstu, a ja upewniłem się, że ustawienie nazwy użytkownika jest głównym przykładem w tym tekście. Od tego czasu udało nam się to schrzanić, dołączając tekst pomocy dla wszystkich opcji konfiguracyjnych w tym wyjściu :-( Otworzyłem ten problem: mercurial.selenic.com/bts/issue3348
Martin Geisler
13

W systemie Windows XP nie widzę pliku ini. Po utworzeniu repozytorium za pomocą polecenia hg initdodałem plik z nazwą hgrcdo folderu.hg

Z następującą treścią:

[ui]  
editor = notepad  
username = [email protected]
Zamboni
źródło
1
wzmianka o hgrcw .hgfolderze był pomocny
E-bogaty
9

bez względu na Windows czy Linuksa, hg szuka poprawnej konfiguracji w pliku "/.hg/hgrc". Jak mówi "hg help config", wystarczy dodać na końcu tego pliku następujące linie:

[ui]
username = YOUR NAME <[email protected]>
verbose = true

zapisz i "hg commit -m 'test'"

Usuario
źródło
4

Jeśli używasz TortoiseHg, możesz łatwo dodać ustawienia [UI]

  1. Kliknięcie prawym przyciskiem w dowolnym Eksploratorze folderów, aby uzyskać dostęp do menu TortoiseHg .

  2. Z wysuwanego menu TortoiseHg wybierz Ustawienia globalne

  3. W interfejsie kliknij Edytuj plik

  4. Dodaj ustawienia [UI] na końcu

[ui]

nazwa użytkownika = YourName

verbose = true

  1. Zapisz i gotowe
Paul Neumeyer
źródło
3

Oto, co zadziałało dla mnie jak urok w systemie Windows XP:

  1. Przejdź do folderu, C:\Program Files\Mercurial\hgrc.dzakładając, że zainstalowałeś Mercurial C:\Program Files\Mercurial\.
  2. Powinieneś tam zobaczyć Mercurial.RCplik.
  3. Skopiuj plik do C:\Documents and Settings\ [USERNAME]\
  4. Zmień nazwę Mercurial.RCna Mercurial.ini.
  5. Edytuj sekcję [ui] w następujący sposób:

    [ui]

    ; edytor używany do wprowadzania dzienników zatwierdzeń itp. Większość edytorów tekstu będzie działać.

    editor = notatnik

    verbose = True

    nazwa_użytkownika = adres_uż[email protected]

Ralph Wiggum
źródło
Działa również w systemie Windows Server 2008 i 64-bitowym msi Mercurial, z wyjątkiem oczywiście kroku 3 c: \ users [nazwa użytkownika]
Andrew Cowenhoven
Po zainstalowaniu „TortoiseHg 2.2 z Mercurial 2.0 - x86 Windows”, plik Mercurial.RC można znaleźć w C: \ Program Files \ TortoiseHg \ hgrc.d
urig
1

Miałem ten sam problem. Pomogło mi umieszczenie [ui]i username = firstname lastnamena oddzielnych wierszach ~/.hgrcpliku. Umieszczenie tych dwóch rzeczy w jednym wierszu nie pomogło i doprowadziło do błędu.

mathias wellner
źródło
1

Ten problem nadal istnieje. mercurial.iniPlik jest ignorowana bez względu na to, gdzie go umieścić.

mercurial.iniPodczas instalacji nie jest tworzony żaden plik. Utworzyłem go w katalogu instalacyjnym Mercurial, ale nie przyniosło to żadnego skutku. Skopiowałem to do, %USERPROFILE%a potem do %HOME%, ale żaden z nich nie działa.

Umieszczenie .hgrcw katalogu HOME działa.

Dokumentacja („hg help config”) musi zostać poprawiona.

Dean Schulze
źródło
1

Skonfiguruj .hgrc w ten sposób:

[ui]
username = your name <[email protected]>
verbose = True

UWAGA!! Nie pomijaj części [ui]

Wedava
źródło
0

Jest to problem, ponieważ w pliku pomocy nie ma ścieżki do podanego pliku konfiguracyjnego, musimy skopiować Mercurial.iniplik z katalogu plików programu do katalogu USER, być może jest to problem pochodzący z instalatora w systemie Windows.

@Kevin Won: zapomniałeś dodać linię:

verbose = True
Pierre Ducher
źródło