在提交期间更改svn用户名

时间:2014-09-05 13:53:29

标签: svn visualsvn-server

我们有像QWE098765这样的公司登录,并使用它们来访问SVN存储库。我希望将此名称映射到电子邮件,因此在SVN历史记录中,它们将是人类可读的。

目前我使用post-commit hook来改变svn:author revision属性,但是......但是这里提交和更改名称之间的差距很小,有时跟踪SVN更改的应用程序(CommitMonitor,Jenkins)会抓住QWE098765而不是电子邮件。这不是一个很大的问题,但很烦人。

这可能是映射名字的其他方法吗?

P.S。我们使用VisualSVN服务器访问存储库。

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

最后,我得到了Lazy Badger的建议

事实上,使用标准工具是不可能的: http://svn.haxx.se/users/archive-2014-09/0032.shtml

但是可以编写简单的脚本或程序并直接使用Subversion API。 我写了这样的程序的简单实现:https://github.com/azarkevich/SvnPreCommitAuthor

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

答案 2 :(得分:0)

使用python脚本在预提交钩子中更​​改作者:

这是一个很好的例子: http://svn.apache.org/repos/asf/subversion/trunk/tools/hook-scripts/log-police.py 这个修改了日志,但修改作者的工作方式相同(只需用 svn:author 替换 svn:log )。

你需要python-subversion。如果您使用的是Ubuntu / Debian,请使用以下命令安装:

sudo apt install python-subversion