在Subversion中,我可以是我的登录名以外的用户吗?

我想知道如何让Subversion更改我的更改显示在下面的名称。

我刚开始使用Subversion。我现在用它来控制一台XP笔记本电脑的版本,我总是用我妻子的名字登录。我希望subversion DB显示我的名字下的更改。

稍后,我将复制数据库,这样整个房子都可以访问它。我妻子使用办公室的电脑,她总是以我的名字登录。我可能会把它设置成自动检入修改过的文档……最好是用她的名字。

最终,我可能会以另一个用户名在linux机器上使用它。

是否有某种方法可以修改用户环境以更改Subversion调用您的用户名?我希望像设置SVN_USERNAME='Mark'这样的东西会覆盖它通常得到的名称。

更新:看起来Michael提到的--username标志确实可以改变"svn stat"报告的名称,即使对于本地文件:存储库也是如此。此外,它是粘性的,因此您不需要为下一个命令指定它。我甚至重新启动,它仍然使用我以前启动的"--username"值。

401951 次浏览

大多数Subversion命令使用--username选项来指定您想要使用到存储库的用户名。Subversion会记住每个工作副本中使用的最后一个存储库用户名和密码,这意味着,如果你使用svn checkout --username myuser,你永远不需要再次指定用户名。

正如Kamil Kisiel所说,当Subversion直接从文件系统访问存储库时(即,存储库URL的形式为file:///path/to/repofile://file-server/path/to/repo),它使用您的文件系统权限来访问存储库。当您通过SSH隧道连接 (svn+ssh://server/path/to/repo)时,SVN使用您在服务器上的FS权限,这由您的SSH登录决定。在这些情况下,svn checkout --username可能不适用于你的存储库。

如果使用我登录的用户名失败,Subversion通常会询问我的“Subversion用户名”。所以,当我很懒的时候(通常),我会让它问我密码,然后我按下回车键,等待用户名提示,然后使用我的Subversion用户名。

否则,Michael的解决方案是立即指定用户名的好方法。

我相信,如果您使用file://方法来访问subversion存储库,您的更改总是在访问存储库的用户下执行。请使用支持认证的方法,如http://或svn://。

看到http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing

TortoiseSVN总是提示输入用户名。(除非你告诉它不要这样)

在Apache模块或svnserve中使用Subversion。我已经能够执行操作作为多个用户使用--username

每次以“新”用户调用Subversion命令时,您的$HOME/.subversion/auth/<authentication-method>/目录将为该用户缓存一个新条目(假设您能够以该特定用户联系的服务器使用正确的密码或身份验证方法进行身份验证)。

我相信您可以设置SVN_USER环境变量来更改您的SVN用户名。

对于svn over ssh尝试:

svn list svn+ssh://[user_name]@server_name/path_to_repo

svn将提示您输入user_name的密码。

"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

在我用另一个用户账号的时候有用。系统将提示您再次输入用户名/密码。你需要像上面那样登录一次,然后你就可以为以后的时间设置好了(除非你重新启动你的机器)。

你可以通过~/.subversion/servers设置一个默认用户名:

[groups]
yourgroupname = svn.example.com


[yourgroupname]
username = yourusername

请注意svn的旧版本不支持它(例如1.3.1 [sic!])。

如果您使用svn+ssh连接到存储库,那么唯一对您进行身份验证和授权的是您的ssh凭据。其他一切都被忽略了。您的用户名将与在ssh连接中建立的用户名完全相同。在jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html中有一个很好的解释

如果你需要指定一个用户名而不是你的登录用户来使用svn+ssh 只需在.ssh/config文件中添加一个条目:

Host example.com
User jdoe

大多数答案似乎是svn+ssh,或者似乎不为我们工作。

对于http访问方式,通过命令行注销SVN用户最简单的方法是:

rm ~/.subversion/auth/svn.simple/*

提示:http://www.yolinux.com/TUTORIALS/Subversion.html

转到~/.subversion/auth/svn.simple/*,你将看到一个文件列表,其中包含关于svn用户帐户的信息。删除所有你不需要的。

在此之后,当您执行任何与SVN操作有关的操作时,如提交、rm等。系统将再次提示您输入用户名或密码。