共用方式為


在版本控制下管理模型與圖形

在 Visual Studio Ultimate 中,您可以將模型專案和圖表檔、圖形文件 (.dgml) 檔以及 [架構總管] 查詢 (.dgql) 檔放置到 Team Foundation 版本控制 下方。 如需詳細資訊,請參閱將檔案加入至伺服器

有多位使用者進行同一個模型專案時,務必特別注意。

重要

如需有關如何在大型或中型專案內組織模型的建議,請參閱結構化和模型化方案

模型專案中的檔案

模型專案上可以有多位使用者同時執行工作 (假設這些使用者處理不同的檔案)。

為避免或解決不同使用者所做的變更之間的衝突,務必了解模型儲存在檔案中的方式。

  • 每一個封裝都會儲存在個別的 .uml 檔中,該檔案則保存在 ModelDefinition 專案資料夾內。 模型也有 .uml 檔。 如果其中一個檔案遭刪除或損毀,則會失去對應的封裝或模型。

  • 每一個圖表都會儲存在兩個檔案中。 例如,類別圖表有:

    • DiagramName.classdiagram - 如果此檔案遭刪除或損毀,則會失去圖表,但是它顯示的類別和關聯仍會保留在模型中,而且可以在 [UML 模型總管] 中看見。

    • DiagramName.classdiagram.layout - 如果刪除此檔案,圖形仍會顯示圖表,但是會失去其大小和位置。 每一個配置檔都是圖表檔的附屬項目。 若要顯示配置檔,請在 [方案總管] 中按一下圖表檔旁邊的 [+]。

注意事項注意事項

維護檔案之間的一致性是很重要的。例如,如果您使用原始檔控制回復 .uml 檔案中的變更,則必須同時回復 *diagram 和 .layout 檔案中對應的變更。如果也沒有在 .uml 檔案中表示項目,則 .*diagram 檔案所表示的項目將會遺失。

在共用模型專案上執行工作

若要減少並行處理專案的不同部分時發生的衝突:

  • 將您的模型專案分成數個封裝,代表不同的工作區域。 將整個模型移到封裝內,而不要留在根模型中。 如需詳細資訊,請參閱定義套件和命名空間

  • 不同的使用者不應同時處理相同的封裝或圖表。

  • 如果您使用設定檔,務必確定每一個人都安裝相同的設定檔。 請參閱 使用設定檔和造型自訂您的模型

  • 為確保您僅變更所處理的封裝:

    • 設定 UML 類別、元件或使用案例圖表的 [LinkedPackage] 屬性。

    • 在 [UML 模型總管] 中,將剛建立的活動或互動拖曳至您的封裝。 這個項目會在您建立活動或順序圖表中的第一個節點時,出現在 [UML 模型總管] 中。

  • 為幫助您追蹤封裝,請重新命名封裝檔以反映實際的封裝名稱。

  • 在 Team Foundation 版本控制 中,務必在完整的模型專案上執行 [簽入] 和 [取得最新的版本] 作業,絕不要在個別檔案上執行。

  • 務必在緊接著要簽入模型專案之前,先執行 [取得] 作業。

  • 執行 [取得] 作業之前,務必先關閉所有圖表。

    注意事項注意事項

    如果在執行 [取得] 時有開啟的檔案,則作業會導致本機變更,並且會提示您重新載入檔案。在此情況下,按一下 [],然後重新載入整個專案。以滑鼠右鍵按一下 [方案總管] 中的模型專案節點,並按一下 [卸載專案],然後按一下 [重新載入專案]。

必須獨佔存取模型才能進行變更

在您進行下列類型的變更之前,請先確定整個專案有 [簽出] 鎖定。

  • 重新命名或刪除從其他封裝參考的項目。

  • 變更超出封裝範圍的關聯性屬性。

  • 若要了解 [簽出] 鎖定,請參閱簽出和編輯檔案

若要在專案資料夾中移入或移出圖表檔

  1. 啟動 Visual Studio 的 [開發人員命令提示字元]。

  2. 使用 tf rename 移動圖表檔及其 .layout 檔:

    tf rename sourcePath targetPath

  3. 在 [方案總管] 中,以滑鼠右鍵按一下檔案,然後按一下 [從專案移除]。

  4. 將檔案加入至目的資料夾。

    在 [方案總管] 中,以滑鼠右鍵按一下目的資料夾或專案,指向 [加入],然後按一下 [現有項目]。 在對話方塊中選取圖表檔,然後按一下 [加入]。 配置檔將自動加入。

    注意事項注意事項

    您無法將檔案移至不同的專案。

合併模型檔和圖表中的變更

多位使用者並行處理模型之後,Team Foundation 版本控制 將提示您合併模型檔案中的變更。 如前面幾節中所述處理不同的專案,將可避免大部分的合併。 一般而言,剩餘的衝突可順利自動合併。 以下幾種變更應該相當簡單:

  • 生命線的類型。 當您將生命線加入至互動 (順序圖表) 時,除非您是從現有的類型建立生命線,否則其類型會儲存到根模型中。

  • 新的活動和互動一開始會儲存到根模型中。

  • 加入項目和關聯性。

  • 重新命名或刪除僅在自己的封裝內參考的項目。

請參閱

概念

模型化應用程式

其他資源

共用模型及匯出圖表