有没有一种方法可以配置TortoiseHg来存储我的密码?
我在Google Code上托管了一个项目,使用TortoiseHg进行访问。每当我想要将更改推送到Google Code时,TortoiseHg都会提示我输入用户名和密码。Google Code要求我使用自动生成的密码,每次都去查看它变得非常重复。
有没有一种方法可以配置TortoiseHg来存储我的密码?
我在Google Code上托管了一个项目,使用TortoiseHg进行访问。每当我想要将更改推送到Google Code时,TortoiseHg都会提示我输入用户名和密码。Google Code要求我使用自动生成的密码,每次都去查看它变得非常重复。
两个现有的答案都建议以明文形式存储您的用户名和密码,这有点不可取。
相反,您应该使用Keyring扩展,因为它专门设计用于安全保存认证密码。它已经与TortoiseHg捆绑在一起,所以您只需要在mercurial.ini文件中编写以下内容来激活它:
[extensions]
mercurial_keyring=
您还需要通过编辑特定于存储库的.hg\hgrc文件来将您的用户名与推送URL关联起来,如下面的示例所示:
[paths]
default = https://<your_username>@bitbucket.org/tortoisehg/thg
如需将您的用户名与URL相关联的更多详细信息,请参阅Keyring扩展页面的存储库配置(SMTP)部分。
三个步骤,请观看截图。 注意:此操作会以纯文本形式存储您的密码。
安全警告
尽管这个答案在2017-09-15被接受,但这不是一个推荐的解决方案。您永远不应该以明文形式存储密码。相反,应该使用mercurial_keyring
扩展。请参见此处的另一个答案。
您可以将推送URL更改为https://username:password@hostname.com/repo。
此方法在Google Code和Mercurial的常见问题解答中有说明。
编辑:Mercurial FAQ解释了另一种实现方式:
从Mercurial 1.3版本开始,您也可以在hgrc文件中添加auth部分:[auth] example.prefix = https://hg.example.net/ example.username = foo example.password = bar
hg push
是非破坏性的(您总是可以使用hg strip
命令删除不需要的变更集),因此将代码库推送到远程存储库并不是一项高度特权的操作。因此,只要意识到安全影响,明文密码存储通常就足够了。 - Søren Løvborg只需要修改本地代码库 .hg
目录下的 hgrc
文件,使其看起来像这样:
[paths]
default = https://name:password@yourproj.googlecode.com/hg/
其中,name 是您的 Google Code 登录名(不包括 gmail/googlemail 部分),例如 'fredb' (而不是 fredb@gmail.com),password 是由 Google 生成的密码,yourproj 是您的 GC 项目名称。因此,示例可能如下:
default = https://fred:xyz123@fredproj.googlecode.com/hg/
这对我来说使用SSH
是有效的。我知道密码是明文的,但在这个项目中这不是问题。
您必须更改myUser和MyOPas为您的凭据以及路径:TortoisePlink.exe。
编辑mercurial.ini文件。
[reviewboard]
password = myPass
[ui]
username = myUser
ssh = "C:\Program Files\TortoiseHg\lib\TortoisePlink.exe" -l myUser -pw myPass
如果您想在mercurial.ini中存储密码,但在升级到TortoiseHg 4.9或更高版本后无法正常工作,则可能的解决方案是将端口添加到前缀中:
[auth]
tax.prefix = http://server:8080
tax.username = cerveser
tax.password = mypassword
[auth] \n bitbucket.org.prefix = bitbucket.org \n bitbucket.org.username = schlamar
。 - schlamar/.hgrc中添加了扩展,但是TortoiseHg将我的用户名和密码以明文形式存储在同一文件/.hgrc中。比将其存储在存储库目录中要好,但仍然不能称之为安全。因此,在Linux中,要么通过在.hgrc中添加[extensions] mercurial_keyring=来启用keyring扩展,要么它实现的“keyring”概念相当差。 - matteomercurial.ini
在 Windows 8.1 上的确切位置是什么? - Dmitri Nesteruk