Mercurial, TortoiseHg, связка ключей и использование двух удаленных репозиториев с двумя именами пользователей и паролями, которые были забыты - PullRequest
2 голосов
/ 18 октября 2011

Я использую TortoiseHg Workbench 64bit 2.1.4, хотя это может быть проблемой с Mercurial. Операционная система Windows 7 (64-разрядная).

У меня есть два проекта, которые я отправляю в два разных места (один - bitbucket, другой - частный). Они используют разные имена пользователей и пароли, и я использую HTTPS.

Я установил связку ключей в моем mercurial.ini:

[extensions]
mercurial_keyring=

и в двух файлах .hg / hgrc у меня есть пути установки с соответствующими значениями:

[paths]
default = https://userX@domainX/XXX

Если я работаю только с одним репо, пароль запоминается при каждом подключении. Однако, когда я переключаюсь между проектами, мне приходится повторно вводить пароль. Это как если бы он запомнил только один пароль.

Ниже приведен пример журнала с опцией --debug (пароль запрашивается после строки с надписью «user: userX (исправлено в .hg / hgrc)»:

% hg --repository xxx push --debug https://userX@domainX/XXX
pushing to https://userX@domainX/XXX
using https://userX@domainX/XXX
http auth: user userX, password not set
sending capabilities command
domainX certificate successfully verified
Keyring URL: https://userX@domainX/XXX
Keyring password found. Url: https://userX@domainX/XXX, user: userX, passwd: ********
domainX certificate successfully verified
Keyring URL: https://userX@domainX/XXX
http authorization required
realm: DEV
user: userX (fixed in .hg/hgrc)
Saving password for userX to keyring
Manually entered password. Url: https://userX@domainX/XXX, user: userX, passwd: ********
domainX certificate successfully verified
sending heads command
Keyring URL: https://userX@domainX/XXX
Cached auth data found. Url: https://userX@domainX/XXX, user: userX, passwd: ********
domainX certificate successfully verified
searching for changes
no changes found
checking for updated bookmarks
sending listkeys command
Keyring URL: https://userX@domainX/XXX
Cached auth data found. Url: https://userX@domainX/XXX, user: userX, passwd: ********
domainX certificate successfully verified

1 Ответ

2 голосов
/ 18 октября 2011

Я пробовал на своей Windows-машине, и я могу воспроизвести, но не могу исправить.Похоже, расширение для ключей действительно хранит только один пароль и заменяется при сохранении другого.Если вы зайдете в диспетчер учетных данных Windows, то увидите, что это происходит.

В библиотеке ключей Python существует отчет об ошибке, который использует расширение набора ключей Mercurial:

https://bitbucket.org/kang/python-keyring-lib/issue/47/winvaultkeyring-only-ever-returns-last

Похоже, что один из разработчиков ответил на это только вчера, поэтому, возможно, он работает над исправлением.

Редактировать : Согласно отчету об ошибках это теперь исправлено, и согласноЛи Аткинсон теперь также работает в TortoiseHg.

...