25

我正在使用 Visual SVN 服务器和 Tortoise SVN(客户端)进行源代码控制。我希望所有开发人员都对签入注释的一致格式进行标准化。

例如,我希望他们的提交消息默认为...

概要:

开发者名称:(预填充)

审核人:

[错误编号]:

[更改错误状态]:

已知的问题:

受影响的文件:(预填充)

将来我希望 [Bug Id] 和 [Bug State] 提供信息以触发对 Bug 跟踪系统的自动更新。还应使用 svn 用户和用户提交的文件预先填充开发人员名称和受影响的文件。

请发送您可能拥有的任何链接或样本。

4

4 回答 4

32

取自How to create a Tortoise SVN Checkin Template(修改以适应更多当前版本):

日志模板可根据项目需求定制,可用于实现严格的日志格式。

将此添加到您的 svn 存储库很容易:

  1. 选择要应用此的 SVN 文件夹转到 Subversion 属性(右键单击TortoiseSVN -> Properties

  2. 选择New -> Advanced,然后tsvn:logtemplate从名为 的下拉列表中选择Property name

  3. 将上述模板(或您自己的)添加到组合框下方的文本区域。

  4. 如果要将属性应用于当前文件夹下层次结构中的每个文件和文件夹,请选中递归复选框。

  5. 单击OK以将该属性添加到列表中。

  6. 签入所有文件夹和文件,以便团队中的其他人可以使用相同的模板。

于 2009-06-24T03:27:16.370 回答
4

使用命令行执行此操作的一种方法是更改​​ SVN_EDITOR 环境变量,如下所述:

http://svn.haxx.se/dev/archive-2006-02/0487.shtml

SVN_EDITOR="rm svn-commit.tmp && cp $REPOS/hooks/log.tmpl svn-commit.tmp && vi svn-commit.tmp"
于 2010-02-03T19:22:10.853 回答
1

或者,为了让 SVN_EDITOR 更加舒适(例如,在必须使用 SvnBridge 的情况下正确链接到 TFS 工作项),可以将以下脚本存储为 ~/bin/svn_editor :

#!/bin/sh

template_file="${@}"
template_file_new="${template_file}.new"

current_work_item_number_file="${HOME}/tfs_work_item_number_current.txt"
[ -f "${current_work_item_number_file}" ] && work_item=$(cat "${current_work_item_number_file}") || work_item="please fill in!"

# Yes folks, this is the TFS convention (hard, NOT-TO-BE-ALTERED text)
# to properly link to work items via SvnBridge commits!
work_item_prefix_hard_tfs_convention_text="work item: "

work_item_text="${work_item_prefix_hard_tfs_convention_text}${work_item}"

custom_text="${work_item_text}\n\n[this addition above initially placed to ignored content part here,\nto ensure properly abortable empty message by default - please move it to active content as needed]"

sed -e 's/\(will be ignored--\)/\1\n'"${custom_text}"'/' "${template_file}" > "${template_file_new}"

mv -f "${template_file_new}" "${template_file}"

$EDITOR "${@}"

然后简单地做

export SVN_EDITOR=~/bin/svn_editor

在 ~/.bashrc 或类似的地方。即使从 Firefox TFS Web 界面中查看的当前工作项页面保持工作项编号文件更新的奖励积分(我认为可能有一种与 Firefox 通信以获取页面标题等的方法)。或者简单地让这个脚本在持久性工作项文件上启动第一个初始编辑器,然后让它在自定义提交模板上运行第二个编辑器。

于 2012-04-12T15:32:10.390 回答
1

我发现它使用: Folder right-click -> Properties -> New... -> Advanced -> Property name: tsvn:logtemplate -> enter a Property value -> OK -> OK.

于 2015-12-14T07:21:56.517 回答