每当我从 TortoiseSVN 签到时,都会显示一条消息,如下面的屏幕截图所示。
在没有问题编号的情况下单击继续后,它将进行提交。我不确定如何避免此消息或如何在提交时提供问题编号。
有人可以提供这两种解决方案吗?
下面是问题跟踪器集成属性的截图
下面是Edit BugTraq Properties的截图
您的正则表达式属性格式错误或位置错误,或两者兼而有之。 根据 TortoiseSVN bugtraq 文档,正则表达式属性是用换行符分隔的两个字符串,或者一个字符串。对于单字符串方法,您只需要捕获仅捕获组中的错误ID;对于双字符串方法,第一个正则表达式捕获包含错误 ID 的字符串,第二个正则表达式从第一个正则表达式提取的字符串中提取实际错误 ID。您有一个正则表达式,将多个项目包装在捕获组中,包括整个匹配的字符串。如果您真的想将整个 ALMCRxx 字符串作为错误 ID 与单个正则表达式进行匹配,您可能需要使用一些非捕获组,例如
((?:ALM|alm)(?:cr|CR|rq|RQ)\w+)
.
如果您不想将整个字符串作为错误 ID,则需要调整捕获组,或使用双正则表达式方法。
如果您使用对话框中的第二个“Bug-ID 表达式”框,您将始终使用双字符串方法。所以在你的例子中,你已经输入了一个正则表达式来从匹配的字符串中提取错误 ID,但是你没有输入模式来首先匹配字符串。因此 TortoiseSVN 永远不会找到任何错误字符串。
单击正则表达式编辑框旁边的小空按钮,允许您在提交消息上测试正则表达式。如果我将您的正则表达式放入“消息部分表达式”框中而不是“Bug-ID 表达式”,则示例提交消息中会突出显示诸如 ALMCR55 之类的字符串。如果我把它留在你拥有它的“Bug-ID 表达式”编辑框中,没有任何亮点。
我不确定您是否需要第二个字符串来提取一段 ALMCR55 文本,但至少您需要在“消息部分表达式”中包含一些内容。
您有任意文本,在您的提交消息中由正则表达式解析
(Bug-Id expression): ((ALM|alm)(CR|RQ|cr|rq)\w+)
。例如,这将起作用:
- here is my issue fix: ALMCR55
如您所见,
ALM
、CR
和 55
出现在您的提交消息中。 TortoiseSVN 还应在您的提交消息中突出显示此文本。
现在您唯一需要弄清楚的是从哪里获取错误 ID(我猜是从您的错误跟踪器中获取)。
以下答案适用于当前(2023 年)版本的 Tortoise Git
buqtraq.url
和bugtraq.message
,并确保☐ inherited
没有被选中=> 该消息现在不应再出现
这是假设您的问题可以在如下地址下找到:http://my.bugtracker.address/KEY-1234
bugtraq.url
下,这样写URL:http://my.bugtracker.address/KEY-%BUGID%bugtrack.message
下,写:%BUGID%=> 现在,Tortoise Git Commit 窗口的右上角应该有一个“BUG-ID/Issue-Nr”字段,您可以在其中提供问题编号,如果此字段未填写,则警告消息从问题会弹出