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

我知道如何在提交后更改作者,但如何在提交之前更改?安装 apache/svnserver 不是一个选项。

有帮助吗?

解决方案

是的,这是可能的。

乌龟SVNSVN 命令行客户端在您的配置文件文件夹中共享相同的设置位置。因此,您可以简单地使用以下命令签出一个版本 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 (在您的存储库的 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 前导码)具有相同的内容

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top