我使用 TortoiseSVN 访问基于文件的本地 repo。在我的所有提交中,作者是我的 Windows 登录名。是否可以使用不同的名称?
我知道提交后如何更改作者,但之前如何更改?安装 apache/svnserver 不是一个选项。
我使用 TortoiseSVN 访问基于文件的本地 repo。在我的所有提交中,作者是我的 Windows 登录名。是否可以使用不同的名称?
我知道提交后如何更改作者,但之前如何更改?安装 apache/svnserver 不是一个选项。
是的,这是可能的。
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
)。
另一种可能的解决方法(但我不提倡)是在提交之前使用客户端钩子脚本,以更改用户名。
钩子脚本在 Subversion 书中讨论,本地钩子在 TortoiseSVN 帮助的“客户端钩子脚本”中讨论。
据我所知,TortoiseSVN 没有提供任何方法来做到这一点。
大概这不是一个大问题,因为基于文件的访问对于多用户场景是不切实际的,而对于单用户来说,作者姓名的重要性较低。
一种可能的解决方法是使用您想要的作者姓名创建另一个 Windows 用户名并与之连接。
我从来没有在 Windows 机器上托管过 svn,所以这是在黑暗中拍摄的。您可能能够创建一个新的 Windows 用户并在浏览、签出、提交等时指定该用户。假设您要更改为msznajder
. 在 Windows 中创建一个具有该名称的用户,然后尝试使用 TortoiseSVN 的 Repo 浏览器浏览存储库并在 URL 中指定用户名 - 类似于file:///msznajder@localhost/some/file/path
.
我建议设置一个 post-commit-hook(在你的 repo 的 hooks 文件夹中 - 只需将 post-commit-hook.tmpl 复制到 post-commit-hook.bat 并清空它 [1]
svn propset svn:author --revprop -r HEAD <author> file:///<path-to-repo>
[2]
[1] 前提是安装了 SlikSvn 或类似的,即命令行 svn 访问是可能的)
[2] (或 .sh 如果在 linux 上,带有 #!/bin/bash 序言)具有相同的内容