在Subversion中,我可以成为除我的login名之外的用户吗?

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

我刚开始使用Subversion 。 我正在使用它在XP笔记本电脑上的版本控制代码,我总是以我妻子的名字login。 我想颠覆数据库来显示我的名字下的变化。

稍后我将复制数据库,以便整个房子都可以使用。 我的妻子使用的办公室电脑,她总是以我的名义login。 我可能会设置它,以便自动检查修改后的文档…最好在她的名下。

最终我可能会从另一个用户名下的Linux机器上使用它。

有没有办法修改用户环境来改变Subversion调用你的用户名? 我期望像设置SVN_USERNAME='Mark'这将重写,但它通常会得到的名称。

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

大多数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权限,这取决于你的SSHlogin。 在这些情况下, svn checkout --username可能不适用于您的存储库。

对于svn通过ssh尝试:

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

svn会提示你inputuser_name的密码。

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

 [groups] yourgroupname = svn.example.com [yourgroupname] username = yourusername 

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

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

在另一个用户帐户上工作。 不过你会被提示input用户名/密码。 你需要像上面这样login一次,并且你已经设置好了以后的时间(除非你重新启动你的机器)。

如果您需要指定除svn + ssh之外的login用户以外的用户名, 只需在.ssh / config文件中添加一个条目 :

主机example.com
用户jdoe

如果使用我login的用户名,Subversion通常会询问我的“Subversion用户名”。 所以,当我懒惰(通常),我只是让它问我的密码,我会打进,并等待用户名提示,并使用我的Subversion用户名。

否则,迈克尔的解决scheme是立即指定用户名的好方法。

大多数的答案似乎是svn + ssh,或似乎不适合我们。

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

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

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

我相信如果你使用file://方法来访问你的Subversion版本库,你的更改总是在访问版本库的用户下执行。 您需要使用支持身份validation的方法,如http://或svn://。

请参阅http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing

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

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

如果您使用svn + ssh连接到存储库,那么对您进行身份validation和授权的唯一方法就是您的ssh凭证。 其他的一切都被忽略了。 您的用户名将被logging在颠覆完全一样,因为它是build立在您的SSH连接。 一个很好的解释是在jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html

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

之后,当你做任何关于SVN操作的东西,比如commit,rm等等。 您将再次提示input用户名或密码。

TortoiseSVN总是提示input用户名。 (除非你告诉不要)

我相信你可以设置SVN_USER环境variables来改变你的SVN用户名。