專案和編輯器適用的其他原始檔控制指導方針
專案和編輯器應該遵守許多指導方針,以支援原始檔控制。
指導方針
您的專案或編輯器也應該執行下列動作以支援原始檔控制:
面積 | 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 實作來重新載入資料。 最困難的重新載入案例是當您呼叫 VsQueryEditQuerySave::QueryEditFiles 且正在處理資訊時發生簽出的情況。 不過,重新載入程式碼必須能夠在這種情況中執行。 環境會自動重新載入專案檔案。 不過,如果專案具有巢狀階層,則必須實作 IVsPersistHierarchyItem2 專案,以支援重新載入巢狀專案檔案。 |