在SVN提交之前捕获数据

时间:2014-03-18 11:50:46

标签: svn

我们有bug系统,用户可以在其中提交错误。一旦通过代码签入解决了错误,我们必须手动将错误更新到修订号。

我正在寻找一种方法,在签入之前,它会要求用户填写一些细节,例如bug等的状态更改,这些将通过其api添加到bug中。

只有在成功之后才会发生提交。这可能。

1 个答案:

答案 0 :(得分:3)

至于"向用户询问详细信息" ...不,或者至少不容易,除非你有与你的bug跟踪系统集成的工具,可以在提交时捕获它(TortoiseSVN可以与之集成)一些,我认为......)。

可以做的是要求/建议用户将所需信息放入提交消息中。

然后你编写一个post-commit-hook来解析注释以获取bug跟踪号,状态变化等,然后使用bug系统API来更新项目。

这正是我们将SVN与OnTime集成所做的工作。

示例提交消息:

  

E1234添加了代码以增强增强功能。

post-commit-hook读取提交信息,找到E1234,并使用API​​查找项目。我们还使用完整的提交信息更新字段,例如修订,用户和文件路径。

粗略了解C#中的情况:

  static void Main(string[] args)
  {
        string sRepository = "file:///" + args[0]; //might need to flip the \
        int nRevision = int.Parse(args[1]);

        //use SVN commands or library to get commit information
        //from sRepository for nRevision

        string pattern = @"\b[DFET][0-9]+\b";
        MatchCollection matches = Regex.Matches(log.log, pattern);
        foreach (Match thisMatch in matches)
        {
           //find the matching bug tracking items
           //and update using your API
        }
   }