如何强制将审阅者姓名输入到 SVN 提交评论中
Posted
技术标签:
【中文标题】如何强制将审阅者姓名输入到 SVN 提交评论中【英文标题】:How can I enforce a reviewers name being entered into SVN commit comments 【发布时间】:2009-07-14 08:08:18 【问题描述】:我目前使用预提交挂钩阻止任何不包含评论的 SVN 提交。
现在我想扩展它,以便提交注释必须有一行
“审核人:姓名”
目前预提交钩子文件看起来像
:: SET REPOS=%1
:: Transform forward-slashes to back-slashes for Windows
:: SET REPOS=%REPOS:/=^\%
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr [a-zA-Z0-9]
IF %ERRORLEVEL% EQU 0 GOTO CHECKSUOFILES
echo "Commit Comments are Required" >&2
exit 1
有没有人实现过类似的东西?
我目前使用的是 SVN 1.6.0
【问题讨论】:
【参考方案1】:这对我来说似乎是一种不好的做法 - 强制审查某些内容会抑制频繁签入,这是您要鼓励的事情之一。总的来说,我对使用版本控制软件作为某种工作流管理系统的明显趋势感到有点沮丧——这根本不是它的目的!
【讨论】:
【参考方案2】:我采取了一种相当原始的方式来回答我自己的问题。我更改了预提交挂钩以查找文本“审阅者:”,否则它将阻止提交
这个有问题
您可以通过输入 Reviewed By: 而不是名称来规避它 我们要求开发人员输入 Reviewed by: No-one for unreviewed commits但是,它可以让我们解析 SVN 日志,以查看哪些内容已/尚未审核以及由谁审核。
【讨论】:
【参考方案3】:你基本上已经有一个例子了。只需添加如下内容:
set reviewed=no
"C:\Program Files\VisualSVN Server\bin\svnlook.exe" log -t %2 %1 | FindStr "reviewed by" && set reviewed=yes
if "%reviewed%"=="no" GOTO NOTREVIEWED
但是。
当更改已经提交时,查看更改是最容易的。此外,正如 Neil 已经提到的,您不想阻止定期提交。回顾巨大的变化并不奏效。
如果您真的想确保每个更改都经过审核,您应该使用feature branches 的概念。为每个更改创建一个分支,并允许频繁的小提交而无需在那里进行审查。当更改准备就绪时,审阅者可以逐个提交检查它,并将更改合并到主干中。
【讨论】:
【参考方案4】:您可能想考虑使用 Git (http://git-scm.com/) 之类的东西来代替 SVN。使用 Git,您可以拥有只能由您的审阅者编写的项目的“祝福”版本。个人都在他们的本地机器上使用代码,并且可以将他们的更改推送到项目的“审查”实例。审阅者可以在“review”实例中看到更改并将单个更改推送到“blessed”版本。
Git 也可以直接转换你现有的 SVN 项目。
【讨论】:
这并不是切换到 git 的真正理由。你也可以在 SVN 中“祝福”一个分支。以上是关于如何强制将审阅者姓名输入到 SVN 提交评论中的主要内容,如果未能解决你的问题,请参考以下文章