如何让 subversion 重置存储的密​​码/用户并记住我的身份验证凭据?

Nic*_*zet 14 linux passwords authentication svn

背景:我曾经在全新安装时一切正常:

$ svn co https://domain:443/ test1
Error validating server certificate for 'https://domain:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: **REMOVED**
 - Valid: **REMOVED**
 - Issuer: **REMOVED**
 - Fingerprint: **checked with issuer and REMOVED**
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz-machine-hostname':
Authentication realm: <https://domain:443> Subversion repository
Username: nicdumz
Password for 'nicdumz':

# proceeds to checkout correctly

$ svn co https://domain:443/ test2

# checkouts nicely, without asking for my password.
Run Code Online (Sandbox Code Playgroud)

在某些时候,我需要使用不同的帐户提交内容。所以我这样做了

$ svn ci --username other.user
Authentication realm: <https://domain:443> Subversion repository
Password for 'other.user':

# works fine
Run Code Online (Sandbox Code Playgroud)

但是从那以后,每次我想以“nicdumz”的身份提交(默认用户,所有存储库都已与该用户签出)时,它会提示我输入密码:

$ svn ci
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz':
Run Code Online (Sandbox Code Playgroud)

嘿,拜托,为什么 :) 如果我想重新结帐,也会发生同样的情况,因为读取访问也受到保护。

所以我尝试自己解决这个问题。我读到 ~/.subversion/auth 正在存储凭据,所以我从方式中删除了它:

$ cd ~/.subversion
$ mv auth oldauth
$ mkdir auth
Run Code Online (Sandbox Code Playgroud)

起初它似乎有效,因为 svn 忘记了证书验证:

$ svn co https://domain:443/ test3
Error validating server certificate for 'https://domain:443':
 - The certificate is not issued by a trusted authority. Use the
   fingerprint to validate the certificate manually!
Certificate information:
 - Hostname: **REMOVED**
 - Valid: **REMOVED**
 - Issuer: **REMOVED**
 - Fingerprint: **checked with issuer and REMOVED**
(R)eject, accept (t)emporarily or accept (p)ermanently? p
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz-machine-hostname':
Authentication realm: <https://domain:443> Subversion repository
Username: nicdumz
Password for 'nicdumz':

# proceeds to checkout correctly

$ svn up
Authentication realm: <https://domain:443> Subversion repository
Password for 'nicdumz':
Run Code Online (Sandbox Code Playgroud)

什么?这是怎么回事?

如果您有关于调查更多行为的建议,我非常感兴趣。如果我是对的,就没有办法做冗长的svn up或类似的事情,所以我不确定我是否应该去调查。哦,还有它的价值:

$ svn --version
svn, version 1.6.6 (r40053)
   compiled Oct 26 2009, 06:19:08

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme
Run Code Online (Sandbox Code Playgroud)

小智 14

好吧,我遇到了同样的问题,我删除了 auth 目录。然后我做了:

svn --username xxx update
Run Code Online (Sandbox Code Playgroud)

它问我密码,但就是这样。我只能说,删除 auth 目录对我有用。您的服务器文件中有正确的选项吗?即(我认为):

store-passwords = yes
store-plaintext-passwords = yes
Run Code Online (Sandbox Code Playgroud)

在该[global]部分。我不是 100% 肯定,但它可能会有所帮助。