在提交期间更改svn用户名

在提交期间更改svn用户名,svn,visualsvn-server,Svn,Visualsvn Server,我们有像QWE098765这样的公司登录,并使用它们访问SVN存储库。我想把这些名字映射到电子邮件中,这样在SVN历史中,它们将是人类可读的 目前我使用post-commit钩子更改svn:author-revision属性,但是。。。但提交和更改名称之间的差距很小,有时跟踪SVN更改的应用程序(CommitteMonitor,Jenkins)会捕获QWE098765名称而不是电子邮件。这不是什么大问题,但很烦人 也许这里有其他方法来映射名字 另外,我们使用VisualSVN服务器访问存储库。只

我们有像QWE098765这样的公司登录,并使用它们访问SVN存储库。我想把这些名字映射到电子邮件中,这样在SVN历史中,它们将是人类可读的

目前我使用post-commit钩子更改svn:author-revision属性,但是。。。但提交和更改名称之间的差距很小,有时跟踪SVN更改的应用程序(CommitteMonitor,Jenkins)会捕获QWE098765名称而不是电子邮件。这不是什么大问题,但很烦人

也许这里有其他方法来映射名字


另外,我们使用VisualSVN服务器访问存储库。

只需在预提交挂钩中执行即可(我知道并遵循“在预提交中不要修改事务内容”,但日志、作者和日期属性是另一回事,它们可以自由更改)

最后我得到了Lazy Badger的建议

事实上,使用标准工具是不可能的:

但可以编写简单的脚本或程序,并直接使用Subversion API进行操作。 我编写了此类程序的简单实现:


它采用映射为名称->新名称的文件路径,应作为预提交挂钩运行。

使用python脚本更改预提交挂钩中的作者:

这是一个很好的例子: 这一个修改了日志,但修改author的效果相同(只需将svn:log替换为svn:author)

您将需要python subversion。如果您使用的是Ubuntu/Debian,请使用以下方法安装:

sudo apt install python-subversion

有点类似于。我发现pre-commit.tmpl钩子包含注意事项,即在事务中修改svn:author是安全的。伟大的但是如何修改它呢?svnlook(AFAIK)只读工具。如何在事务中编辑作者?我找不到这方面的标准工具…@SergeyAzarkevich-
svn help ps
(或者
pe
,在您的情况下并不重要),第二种形式:“更改存储库修订版上的未版本属性”。Repo路径和事务id作为预提交钩子的参数。不要忘记准备正确的
pre revprop change
,但是svn实用程序不接受事务作为参数,只接受修订。我怀疑我应该使用Subversion API为此编写小脚本/程序:(我尝试
svnps--revprop-r'15-g'file:///home/.../repos/
,但失败了:
E205000:revision参数“15-g”中的语法错误
我还简要检查了源代码,发现svn\u opt\u revision\t只能是数字。