Как я могу получить hg для запроса моего имени пользователя/пароля HTTP на cygwin/windows?
В домашних условиях это работает отлично. Сейчас я на другом компьютере (используя cygwin), и hg push не будет запрашивать имя пользователя/пароль:
[email protected] /cygdrive/d/repos/upthescala/viewprotect
$ hg push https://viewprotect.googlecode.com/hg/
pushing to https://viewprotect.googlecode.com/hg/
searching for changes
abort: http authorization required
Вот содержимое моего ~/.hgrc:
[http_proxy]
host=someproxy:8080
[ui]
username = My Name <myemail>
Заранее благодарим за любой совет!
Примечание: это, по-видимому, проблема cygwin. Когда я пытаюсь выполнить запрос Windows (cmd.exe), он работает как ожидалось:
D:\repos\upthescala\viewprotect>hg push https://viewprotect.googlecode.com/hg/
pushing to https://viewprotect.googlecode.com/hg/
searching for changes
http authorization required
realm: Google Code Mercurial Repository
user: myemailaddress
password: *********
remote: Success.
-
LES
Ответы
Ответ 1
Это может быть вызвано использованием версии Mercurial, привязанной к подсистеме консоли Windows. Бинар, распределенный с черепахой, попадает в эту категорию. Если это так, Mercurial ожидает использовать консольную подсистему для запроса учетных данных, но она не находит ее при запуске из оболочки Cygwin. В моем случае, установка и использование Cygwin версии mercurial исправила проблему, в дополнение к фиксации цветопередачи. Чтобы проверить, какую версию вы используете, запустите "which hg" (но вы, вероятно, уже знали это).
Ответ 2
Чтобы добавить комментарий Andrew:
установка и использование Cygwin версии mercurial исправила проблему,
Это также устранило проблему для меня, но это вызвало еще одну проблему, которая заняла у меня некоторое время, чтобы понять. При использовании Cygwin-версии hg все файлы, которые были клонированы под TortoiseHG, были изменены, когда я запускал hg status
, но никаких различий не было показано ни для одного из них, когда я запускал hg diff
.
Проблема заключалась в том, что разрешения не совпадали. Запуск chmod 644 .* -R
в каждом репо разрешил эту проблему.
Ответ 3
Так как это HTTP, вы всегда можете указать имя пользователя и пароль в URL-адресе. Это работает на любом веб-сайте, используя http auth и в любом браузере.
hg push https://myemailaddress:*********@viewprotect.googlecode.com/hg/
В качестве альтернативы более новые версии Mercurial имеют раздел auth, который вы можете использовать.
Кстати, это страшный пароль. Вы должны придумать что-то лучше восьми звезд.