0

根据我们在旧项目中的一些示例,我最近需要在新项目的源代码中嵌入 Visual Source Safe 历史记录,其中历史记录出现在编码器放置某些注释的位置。最终结果类似于:

using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
//$Archive: /UserManagementSolution.root/UserManagementSolution/UserDAL/Tems.cs $
//$History: Tems.cs $
//* 
//* *****************  Version 3  *****************
//* User: michaelc     Date: 1/31/13    Time: 9:44a
//* Updated in $/UserManagementSolution.root/UserManagementSolution/UserDAL
//
//
namespace UserDAL
{
    public class Tems

VSS 放置版本及其后的两行。我知道 VSS 根据放置行的位置放置历史记录:

//$Archive:  $
//$History:  $
//* 

请注意,VSS 还将 VSS 文件信息放在 $Archive 和 $History 参数中。只需使用如图所示的美元符号来告诉它这些信息的去向。

但是,当我实际签入代码(大约 20 个 C# 文件)时,VSS 将历史记录放入没有注释字符中,从而破坏了构建。这需要一些烦人的返工来评论这些行。问题是,当 VSS 放入历史时,如何让其评论历史?

4

1 回答 1

0

我花了一些时间思考这个问题,然后突然想起在 srcsafe.ini 文件中需要一些编码来告诉 VSS 将历史记录放在注释行中。

我找到了一个按预期运行的项目的 srcsafe.ini 文件,并将其与我的新项目的文件进行了比较。我在行为正确的 .ini 文件中找到了以下几行:

Keyword_Masks = *.cs, *.sql
Shadow = 

[Keyword Comments] 
*.cs = "//"
*.sql = "--"

Keyword_Masks 和 Shadow 关键字放在 .ini 文件中 UseHelperService 之后。我想 Keyword_Masks (带有逗号分隔的值)告诉 VSS 哪些文件类型要放置历史记录(我不知道 Shadow 表示什么,但由于它出现在我们所有的项目中,我不想省略它并找出它后来引起了一些微妙的错误)。

新的 [Keyword Comments] 部分紧随其后(并且在 [Timezone] 部分之前。这显然告诉 VSS 哪些字符用于行注释,以及用于哪种文件类型。

做到了!

请注意,如果您使用的是 Visual Basic,它将被编码为 *.vb。明显地。而且你不必包含 Sql;在这种情况下,我们的 VSS 项目碰巧包含解决方案和项目文件以及我们也在 VSS 中保存的存储过程。

于 2013-02-05T22:20:03.550 回答