2012-06-05 7 views
5

Kiedy próbuję sklonować https-uwierzytelnioną Mercurial repozytorium (np od pieca), prosi mnie o nazwę użytkownikaKonfiguracja Hg nie zapytać o nazwę użytkownika i hasło w wierszu poleceń

C:\temp\test>hg clone https://<my-login-name>.kilnhg.com/Code/Repositories/Group/test 
http authorization required 
realm: kiln 
user: 

Chcemy wywołaj polecenie hg clone z naszej aplikacji GUI z dowolnym adresem URL dostarczonym przez użytkownika i zapytaj użytkownika na żądanie o nazwę użytkownika i hasło, jeśli są one wymagane.

Jak skonfigurować Mercurial, aby wywoływał dowolny skrypt, który zwraca nazwę użytkownika/hasło, podobnie jak skrypty, których ścieżki są zdefiniowane w zmiennych środowiskowych GIT_ASKPASS lub SSH_ASKPASS dla Git?

Odpowiedz

8

Można skonfigurować poświadczenia w swojej użytkownik-szerokim hgrc (mercurial.ini w katalogu profilu użytkownika w systemie Windows):

[auth] 
foo.prefix = example.com/path 
foo.username = user 
foo.password = password 

Następnie wnioski o tym serwerze będzie cicho Użyj poświadczeń przewidzianych w hgrc plik.

Aby uzyskać więcej informacji, patrz docs on hgrc.


Aktualizacja: Po przestudiowaniu TortoiseHg Źródła trochę (kod w kwestii bycia SyncWidget.inclicked i SyncWidget.pullclicked metod w sync.py), znalazłem, że TortoiseHg, który robi dokładnie to, co próbujesz osiągnąć, najwyraźniej najpierw próbuje adresu URL dla żądania uwierzytelnienia, a jeśli został podany, prosi użytkownika o login i hasło, aby odbudować pełny adres URL (z poświadczeniami) i dostarczyć go do hg pull.

Myślę, że możesz zrobić to samo.

+0

Co to jest 'foo' w twojej próbce? Problem polega na tym, że zanim wykonamy jakiekolwiek polecenie klonowania, powinniśmy poprosić o dane użytkownika/hasło, aby je zapisać w pliku 'mercurial.ini'. Czy nie ma możliwości, aby Mercurial nazwał skrypt na żądanie - podobny do "GIT_ASKPASS" lub "SSH_ASKPASS" dla Gita? – Mot

+0

@MikeL .: 'foo' służy do grupowania argumentów w wpisy uwierzytelniające", aby zacytować dołączone dokumenty. Jeśli chodzi o twój problem, muszę administrować Nie w pełni rozumiem twój faktyczny cel. Chcesz zaktualizować pytanie bardziej szczegółowym opisem przepływu pracy? O czym jest wspomniane opakowanie GUI? Jakie są adresy URL "użytkownik może wprowadzić"? – Helgi

+0

Udoskonalono pytanie. – Mot

5

Co

hg clone https://user:[email protected]:port 

Czy takie rozwiązanie nie wykonalne dla Ciebie?

+0

Nie, ponieważ użytkownik może wprowadzić adresy URL podobne do tych w pytaniu. – Mot