项目和编辑器的其他源代码管理指南

项目和编辑器应遵循许多准则来支持源代码管理。

准则

项目或编辑器还应执行以下操作来支持源代码管理:

区域 Project 编辑器 详细信息
文件的专用副本 X 环境支持文件的私人副本。 也就是说,在项目中登记的每个人都有自己的文件私人副本。
ANSI/Unicode 持久性 X X 如果编写持久性代码,请在 ANSI 窗体中保留文件,因为大多数源代码管理程序当前不支持 Unicode。
枚举文件 X 项目必须包含其中所有文件的特定列表,并且必须能够使用 IVsSccProject2GetProperty (VSH_PROPID_First_Child/Next_Sibling)枚举文件列表。 项目还应通过其 GetMkDocument 实现公开项名称,并通过其 IsDocumentInProject 实现公开项名称查找(包括特殊文件)。
文本格式 X X 如果可能,文件应采用文本格式来支持不同版本的合并。 以后,不采用文本格式的文件无法与其他版本的文件合并。 首选文本格式为 XML。
基于引用 X 源代码管理中随时支持基于引用的项目。 但是,只要项目可以按需生成文件列表,也支持基于目录的项目,而不管这些文件是否存在于磁盘上。 从源代码管理打开项目时,项目文件先关闭,然后再将其文件删除。
按可预测顺序保存对象和属性 X X 按可预测顺序(如字母顺序)保存文件,以方便合并。
重新加载 X X 当磁盘上的文件发生更改时,编辑器必须能够重新加载它。 参与源代码管理时,环境将通过调用 ReloadDocData 实现来重新加载数据。 最困难的重载情况是在调用 IVsQueryEditQuerySave:和QueryEditFiles正在处理信息时发生检查输出。 但是,重载代码必须能够在这种情况下运行。

环境会自动重新加载项目文件。 但是,如果项目具有嵌套层次结构,则项目必须实现 IVsPersistHierarchyItem2 以支持重新加载嵌套项目文件。