管理版本控制下的模型和关系图
在 Visual Studio 旗舰版 中,可以将建模项目和关系图文件、关系图文件 (.dgml) 和体系结构资源管理器查询文件 (.dgql) 放在 Team Foundation 版本控制 下。有关更多信息,请参见向服务器添加文件。
当多个用户处理同一个建模项目时需要格外小心。
重要事项 |
---|
有关如何组织大型或中型项目中的模型的建议,请参见构造建模解决方案。 |
建模项目中的文件
多个用户可同时处理一个建模项目,条件是他们处理不同的文件。
为避免或解决不同用户进行的更改之间发生冲突,了解模型在文件中的存储方式很重要。
每个包都存储在单独的 .uml 文件中,该文件保留在 ModelDefinition 项目文件夹中。模型也包含 .uml 文件。如果其中一个文件被删除或损坏,则相应的包或模型将丢失。
每个关系图存储在两个文件中。例如,类图具有:
DiagramName.classdiagram - 如果此文件被删除或损坏,则关系图将丢失,但它显示的类和关联仍将留在模型中,并且可以在 UML 模型资源管理器中查看。
DiagramName.classdiagram.layout - 如果此文件被删除,则形状仍将显示关系图,但其大小和位置将丢失。每个布局文件都是关系图文件的补充文件。若要查看该文件,请在解决方案资源管理器中单击关系图文件旁边的 [+]。
说明 |
---|
可以在文件之间的一致性很重要。例如,在中,如果使用源代码管理回滚在 .uml 文件中的更改,则应回滚中的相应更改。*diagram 和 .layout 文件同时。,如果是在 .uml 文件,也不表示在 a.*diagram 文件所表示的元素将丢失。 |
处理共享建模项目
若要最大程度地减少并发处理项目的不同部分所发生的冲突,请执行下列操作:
将建模项目划分为表示不同工作区域的包。将整个模型移到不同包中,而不是将其留在根模型中。有关更多信息,请参见定义包和命名空间。
不同用户不应同时处理同一个包或关系图。
如果您要使用配置文件,请确保每个用户都安装了相同的配置文件。请参见 使用配置文件和构造型自定义模型。
若要帮助确保您仅更改当前所处理的包,请执行下列操作:
设置 UML 类、组件或用例图的**“Linked Package”**属性。
在 UML 模型资源管理器中,在创建活动或交互后立即将该活动或交互拖到包中。此元素将在您创建活动图或序列图中的第一个节点时显示在 UML 模型资源管理器中。
为帮助您跟踪包,请重命名包文件以反映实际包名称。
在 Team Foundation 版本控制中,始终对整个建模项目而不要对单个文件执行**“签入”和“获取最新版本”**操作。
始终在正要签入建模项目之前执行**“获取”**操作。
始终在执行**“获取”**操作之前关闭所有关系图。
说明 如果在执行“获取”时某个文件处于打开状态,并且该操作导致本地更改,则系统将提示您重新加载该文件。在这种情况下,请单击“否”,然后重新加载整个项目。在“解决方案资源管理器”中,右击建模项目节点,再单击“卸载项目”,然后单击“重新加载项目”。
需要独占访问模型的更改
在进行以下类型的更改之前,请确保您拥有整个项目的“签出”锁。
重命名或删除从其他包引用的元素。
更改跨越包边界的关系的属性。
若要了解关于“签出”锁的信息,请参见签出和编辑文件。
将关系图文件移入或移出项目文件夹
打开 Visual Studio 命令提示。
在 Windows**“开始”菜单中,依次指向“所有程序”、“Microsoft Visual Studio 2010”和“Visual Studio 工具”,然后单击“Visual Studio 2010 命令提示”**。
使用 tf rename 移动关系图文件及其 .layout 文件:
tf rename sourcePath targetPath
在解决方案资源管理器中,右击该文件,再单击**“从项目中排除”**。
向目标文件夹添加该文件。
在解决方案资源管理器中,右击目标文件夹或项目,指向**“添加”,然后单击“现有项”。在对话框中选择关系图文件,再单击“添加”**。布局文件将会自动添加。
说明 不能将该文件移到其他项目。
合并模型文件和关系图中的更改
多个用户并发处理一个模型后,Team Foundation 版本控制将提示您合并模型文件中的更改。按照前面几节所述处理分离的项目可避免大多数合并。通常,其余的冲突可以安全地自动合并。以下类型的更改不会带来麻烦:
生命线类型。除非您是基于现有类型创建了生命线,否则向交互(序列图)添加生命线时,其类型将存储在根模型中。
新的活动和交互最初存储在根模型中。
添加元素和关系。
重命名或删除仅在其所在包中引用的元素。