如何更改访问本地SVN信息库的默认作者?

时间:2020-03-05 18:48:10  来源:igfitidea点击:

我使用TortoiseSVN访问基于文件的本地存储库。在我所有的提交中,作者是我的Windows登录名。可以使用其他名称吗?

我知道提交后如何更改作者,但之前如何更改?不能安装apache / svnserver。

解决方案

回答

据我所知,TortoiseSVN没有提供任何方法来执行此操作。

大概这不是一个大问题,因为基于文件的访问在多用户方案中不切实际,而对于单用户,作者名的重要性就不那么重要了。

可能的解决方法是使用所需的作者名称创建另一个Windows用户名,并与此连接。

回答

我从来没有在Windows机器上托管svn,所以这是一个黑暗的镜头。我们可能可以创建一个新的Windows用户,并在浏览,签出,提交等操作时指定该用户。假设我们要以msznajder的身份进行更改。在Windows中使用该名称创建一个用户,然后尝试使用TortoiseSVN的Repo浏览器浏览存储库,并在URL中指定用户名,例如" file:/// msznajder @ localhost / some / file / path"。

回答

另一个可能的解决方法(但我不主张这样做)是在提交之前使用客户端挂钩脚本,以更改用户名。

Subversion一书中讨论了挂钩脚本,TortoiseSVN帮助中的"客户端挂钩脚本"中讨论了本地挂钩。

回答

是的,有可能。

TortoiseSVN和svn命令行客户端在配置文件文件夹中共享相同的设置位置。因此,我们可以简单地使用svn.exe签出一个版本:

$ svn co --username different_user_name file:///C:/path/to/your/repo

...,Subversion会很乐意替换该存储库的关联用户名。然后,无论使用哪种程序进行新签出,TortoiseSVN的新提交都将始终使用该用户名。

该过程应与TortoiseSVN 1.5.5一起使用。如果没有,请先清空svn的身份验证缓存(%APPDATA%\ Subversion \ auth \ svn.username`)。

回答

我建议设置一个post-commit-hook(在仓库的hooks文件夹中,只需将post-commit-hook.tmpl复制到post-commit-hook.bat并清空它[1]

`svn propset svn:author --revprop -r HEAD <author> file:/// <路径到存储库> [2]

1

[2](如果是linux,则为.sh,带有#!/ bin / bash前缀),内容相同