具有和编辑项目应遵循为了支持源代码管理的准则。
准则
此时将项或编辑还应执行以下支持源代码管理:
区域 |
Project |
编辑器 |
详细信息 |
---|---|---|---|
文件的专用副本 |
X |
|
该环境支持文件的私有副本。 即在项目中获取的每个人文件具有他/她自己的私有复制该项目。 |
ANSI/Unicode 持久性 |
X |
X |
如果编写持久性代码,用于保留在 ANSI 的文件窗体,因为大多数源代码管理程序当前不支持 Unicode。 |
枚举文件 |
X |
|
使用 IVsSccProject2 或 GetProperty (VSH_PROPID_First_Child/Next_Sibling),则该项目在其中必须包含特定列出所有文件并且必须可以枚举文件列表。 该项目应通过其 GetMkDocument 实现还显示项目名称并将其 IsDocumentInProject 实现支持名称查找 (包括私有文件)。 |
文本格式 |
X |
X |
如果可能,文件应以支持合并的文本布局不同版本。 不以文本格式的文件不能与文件的其他版本稍后合并。 首选文本格式为 XML。 |
基于引用 |
X |
|
基于引用的项目处于源代码管理轻松地支持。 但是,基于目录的项目由数据源控件还支持,只要该项可能导致其文件列表在需要时,无论这些文件在磁盘上存在。 当从源代码管理打开项目时,项目文件首先在其任何文件之前降低。 |
按可预测的顺序保持对象和属性 |
X |
X |
按可预测的顺序保留文件,如字母顺序,以便于合并。 |
重载 |
X |
X |
在磁盘上更改时,编辑器必须能够重新加载它。 当您参与源代码管理,环境将通过调用 ReloadDocData 实现重新加载数据。 最难于重新加载情况是签出发生,当您调用 IVsQueryEditQuerySave::QueryEditFiles 和进程信息。 在这种情况下,每隔重新加载代码必须能够运行。 该环境自动重新加载项目文件。 但是,则为; 如果嵌套层次结构以支持重载嵌套的项目文件,项目必须实现 IVsPersistHierarchyItem2 。 |