如何从控制台使用Subversion时保存密码

我想知道在从控制台执行svn操作时是否有保存Subversion密码的方法。 控制台是我唯一的select。 当我尝试执行任何Subversion操作时,例如svn commit ,它会每次提示input帐户密码。 有没有办法以某种方式保存这个密码,以便我不必每次都重新input密码?

~/.subversion/config ,你可能有store-passwords = no 。 将其更改为yes (或只是将其注释掉,因为它默认为yes),下一次给Subversion的密码时应该保存它。

您可能要确保~/.subversion/config的所有者和权限是正确的(没有公共或组访问; 600)。

这取决于你使用的协议。 如果您使用的是SVN + SSH,SVN客户端无法保存您的密码,因为它永远不会触及它 – SSH客户端会直接提示您。 在这种情况下,您可以使用SSH密钥和ssh-agent来避免常量提示。 如果您使用的是svnserve协议或HTTP(S),则SSH客户端正在处理您的密码并可以保存它。

尝试清除您的主目录中的.subversion文件夹,然后尝试再次提交。 它应该提示您input密码,然后询问您是否要保存密码。

我不得不编辑~/.subversion/servers 。 我设置了store-plaintext-passwords = yes (以前没有)。 那就是诀窍。 这可能被认为是不安全的。

请注意~/.subversion/servers文件中的以下段落:

'store-passwords'和'store-auth-creds'现在都可以在config目录下的'servers'文件中指定。 本节中指定的任何内容都将被“服务器”文件中指定的设置覆盖。

至lessSVN版本是1.6.12。 所以请记住编辑服务器文件,因为它覆盖~/.subversion/config

如果您使用svn + ssh ,则可以将公用ssh密钥复制到远程机器上:

 ssh-copy-id user@remotehost 

使用明文可能不是最好的select,如果密码曾被用作别的东西。

我支持接受的答案,但对我来说这并不起作用 – 出于一个非常具体的原因:我想使用kwalletgnome-keyring密码存储。 我试着改变设置,遍布四个文件:

 /etc/subversion/config /etc/subversion/servers ~/.subversion/config ~/.subversion/servers 

即使它被设置为一样的,用password-stores和KWallet的名字(默认可能是错的,对不对?)它没有工作,并一直要求密码永远。 ~/.subversion的文件的权限为600。

那么,在这一点上,你可能会试图检查一件简单的事情:

 which svn 

如果你得到:

 /usr/bin/local/svn 

那么你可能很有可能怀疑这个客户端是由你的pipe理员(可能是你自己,就像我的情况一样)在本地从本地创build的。

Subversion是一个讨厌的野兽编译 ,很容易意外地没有HTTP支持,或者 – 如我的例子 – 不支持encryption的密码存储(你需要Gnome或KDE开发文件,其中很多!)。 但./configure脚本不会告诉你,你只是得到一个function较less的svn命令。

在这种情况下,您可以返回到您的发行版随附的客户端,通常位于/usr/bin/svn 。 缺点是 – 您可能需要重新签出工作副本,因为没有svn downgrade命令。 无论如何,你可以咨询Linus Torvalds关于Subversion的思考;)

不幸的是,答案并没有解决使用受保护的私钥为ssh + svn请求密码的问题。 经过一番研究,我发现:

 ssh-add 

实用程序,如果你有一台Linux电脑。 确保您的密钥存储在/home/username/.ssh/并在terminal上键入此命令。

我在Windows上使用TortoiseSVN客户端,并且在%USERPROFILE%\ AppData \ Roaming \ Subversion \ config中将store-passwords参数设置为yes,并不能帮助存储密码。

删除此文件夹后,密码已成功保存(以防重命名):

 %USERPROFILE%\AppData\Roaming\Subversion\auth 

环境:

Windows 7,TortoiseSVN 1.7.11(Build 23600 – 64 bit,2012-12-12T19:08:52),Subversion 1.7.8。