MSSCCPRJ。SCC 文件

使用 IDE 将 Visual Studio 解决方案或项目置于源代码管理下时,IDE 会收到两个关键信息片段。 这些信息来自以字符串形式提供的源代码管理插件。 这些字符串“AuxPath”和“ProjName”对 IDE 不透明,但插件使用这些字符串在版本控制中查找解决方案或项目。 IDE 通常第一次通过调用 SccGetProjPath 获取这些字符串,然后将其保存在解决方案或项目文件中,以便将来调用 SccOpenProject。 嵌入解决方案和项目文件时,当用户分支、分支或复制版本控制中的解决方案和项目文件时,不会自动更新“AuxPath”和“ProjName”字符串。 若要确保解决方案和项目文件指向版本控制中的正确位置,用户必须手动更新字符串。 由于字符串意在不透明,因此可能并不总是清楚它们应如何更新。

源代码管理插件可以通过将“AuxPath”和“ProjName”字符串存储在名为 MSSCCPRJ.SCC 文件的特殊文件中来避免此问题。 它是插件拥有和维护的本地客户端文件。 此文件从不放置在源代码管理下,但由包含源代码管理文件的每个目录的插件生成。 若要确定哪些文件是 Visual Studio 解决方案和项目文件,源代码管理插件可以将文件扩展名与标准列表或用户提供的列表进行比较。 IDE 检测到插件支持 MSSCCPRJ.SCC 文件后,它将停止将“AuxPath”和“ProjName”字符串嵌入解决方案和项目文件中,而是从 MSSCCPRJ.SCC 文件中读取这些字符串。

支持 MSSCCPRJ.SCC 文件的源代码管理插件必须遵循以下准则:

  • 每个目录只能有一个 MSSCCPRJ.SCC 文件。

  • MSSCCPRJ.SCC 文件可以包含位于给定目录中源代码管理下的多个文件的“AuxPath”和“ProjName”。

  • “AuxPath”字符串内不得有引号。 它允许将引号作为分隔符(例如,一对双引号可用于指示空字符串)。 从 MSSCCPRJ.SCC 文件读取时,IDE 将去除“AuxPath”字符串中的所有引号。

  • MSSCCPRJ 中的 “ProjName”字符串。SCC 文件 必须与函数返回的 SccGetProjPath 字符串完全匹配。 如果函数返回的字符串周围有引号,MSSCCPRJ.SCC 文件中的字符串必须围绕它具有引号,反之亦然。

  • 每当将文件置于源代码管理下时,将创建或更新 MSSCCPRJ.SCC 文件。

  • 如果 MSSCCPRJ.SCC 文件被删除,则提供程序应在下次对该目录执行源代码管理操作时重新生成它。

  • MSSCCPRJ.SCC 文件必须严格遵循定义的格式。

MSSCCPRJ 的插图。SCC 文件格式

下面是 MSSCCPRJ.SCC 文件格式的示例(行号仅作为指南提供,不应包含在文件正文中):

  • [第 1 行] SCC = This is a Source Code Control file

  • [第 2 行]

  • [第 3 行] [TestApp.sln]

  • [第 4 行] SCC_Aux_Path = "\\server\vss\"

  • [第 5 行] SCC_Project_Name = "$/TestApp"

  • [第 6 行]

  • [第 7 行] [TestApp.csproj]

  • [第 8 行] SCC_Aux_Path = "\\server\vss\"

  • [第 9 行] SCC_Project_Name = "$/TestApp"

第一行说明文件的目的,并充当此类型的所有文件的签名。 此行在所有 MSSCCPRJ.SCC 文件中应完全相同

SCC = This is a Source Code Control file

以下部分详细介绍了每个文件的设置,用方括号中的文件名标记。 对于要跟踪的每个文件,将重复本部分。 此行是文件名的示例,即 [TestApp.csproj]。 IDE 需要以下两行。 但是,它不定义定义的值的样式。 变量是 SCC_Aux_PathSCC_Project_Name

SCC_Aux_Path = "\\server\vss\"

SCC_Project_Name = "$/TestApp"

此部分没有结束分隔符。 文件的名称以及文件中显示的所有文本都在 scc.h 头文件中定义。 有关详细信息,请参阅 用作用于查找源代码管理插件的键的字符串。

另请参阅