在文章《协同建模&版本管理(基于EA)》一文中,我们提到EA有四种协同建模方式:

基于本地文件

基本共享文件仓库

基于模型数据库

基于云服务

今天我们主要介绍一下第二种方式 基于共享文件仓库进行建模协作。这种方式主要是对EA中各个模型包应用版本控制来实现。任何包都可以应用版本控制——无论是模型的根节点、视图还是子包。

Enterprise Architect支持模型中版本控制包的两种主要方式:

1、 Model Baselines模型基线:这是EA内置的功能,可以在模型存储库本身中存储包的时间点快照。

2、Version Control Integration版本控制集成: EA支持与第三方版本控制系统的集成,它支持的版本控制工具包括Subversion、CVS、Microsoft的TFS和SCC兼容工具,如Accurev和Visual

Source Safe。

接下来我们主要看一下如何通过SVN实现模型的版本控制。

EA +SVN协同建模

基于SVN进行协同建模这种方式包含服务器端和客户端。服务器安装版本控制服务器组件存放文件仓库。用户在客户端EA中通过版本控制系统连接访问服务器上的文件仓库。

EA +SVN版本控制系统组成:

部分

说明

版本控制服务器

安装基于文件的版本控制系统SVN管理端,配置版本控制服务。

版本控制客户端

安装SVN客户端,安装EA,建立工作副本文件夹,连接服务器,配置EA版本控制

安装软件:

VisualSvn Server svn服务器

Tortoise Svn svn客户端

Enterprise Architect

操作指南:

基于EA+SVN协作如下工作场景

在服务器建立模型文件仓库,

管理员在EA客户端中把模型提交到文件仓库管理起来,

多人进行并发建模:

其他用户可以check out 一个 package,编辑,check in;此时其他用户对锁定的package无法编辑,只能阅读。

如果一个用户正在阅读一个package,check out 的用户 check in 了此package,则提醒更新。

可以把一个模型文件仓库备份,

我们进行如下操作:

操作1: SVN服务器配置

1. 下载安装软件

现在Subversion已经迁移到apache网站上了,官网下载地址:http://subversion.apache.org/packages.html

我们一般是VisualSVN server 服务端和TortoiseSVN 客户端搭配使用

VisualSVN可以极大地简化Subversion服务器的安装,配置和管理。

2. 创建一个仓库

3. 创建版本控制项目(或用于特定项目的模块或文件夹)

4. 配置用户ID和密码

操作2:SVN客户端配置

1、安装客户端SVN软件

我们选择TortoiseSVN客户端,下载安装

2、建立工作副本文件夹,连接SVN服务器

当版本库初始化完毕后,还只是一个空目录,里面没有任何内容。所以需要先在本地创建并制作初始的设计图,然后将其提交到版本库中。这个工作基本上只需要做一次。

在这个本地空间,用户可以用SVN检出已有的ea项目到新建的EA工作空间

操作3、设置EA版本控制

在本地创建一个空的eap文件,右击Model——Package Controll——Version

Controll Settings

操作4、在EA中进行基于SVN的版本管理

1、添加分支到版本控制

右键点击“Project Browser”中本地副本的包,在弹出菜单中,选择“Package Control

-> Add Branch to Version Control”,将本地内容提交版本控制。

在“版本控制”工作副本文件夹中创建多个子文件夹,然后导出所选模型分支中的所有“包”。系统根据程序包GUID为XMI文件生成文件名。

注意:

在选择此命令之前,必须在模型中定义用于此操作的版本控制配置

在模型根节点上调用此命令时,会将版本控制应用于模型中的每个Package

版本提交成功后,可以看到在“Browser"窗口中,节点上已经被明显地添加了加锁的标记。这表明该节点内的Package,已经纳入版本控制管理了。

这个时候不能再进行操作,如果添加新元素会显示如下提示:

右键单击选择Package Control > Check Out Branch 之后,节点上没有了锁的标记。

2、导出模型分支

导出EAB文件,项目组其他成员导入用。右键单击选择Package Control > Export

as Model Branch

导出EAB文件,项目组其他成员可以导入用。文档名称可以自定义。

3、导入模型分支

选中一个包右键单击Package Control > Import a Model Branch

4、其他版本控制操作

选中一个包右键Package Control 右侧有很多菜单项,具体功能如下表。

操作

说明

Check

In Branch

签入分支

当前所选模型分支中包含的签入模型包(即所选模型包及其所有子模型包)。

“选择要签入的模型包”对话框列出了该分支中已签出的所有版本控制的模型包。您可以在列表中选择包,然后提交以进行签入。

您还可以选择在对版本控制提交新修订后将模型包保留为未签出状态。

Check

Out Branch

签出分支

递归检出当前所选模型分支中包含的所有模型包(即所选模型包及其所有子模型包),这些包是受版本控制的并已签入。

Check

In

签入

将当前所选模型包的新修订提交到版本控制存储库,并锁定该模型包以免进一步编辑。

仅适用于您自己签出的包。

Check

Out签出

将当前选择的模型包与版本控制存储库中的最新修订版进行同步,然后解锁该模型包以进行编辑。

仅适用于尚未签出的包(以及尚未签出其关联模型包文件的包)。

Undo

Check Out

撤消签出

将选定的程序包还原到版本控制存储库中的最新版本,并锁定该包以免进一步编辑。

Put

Latest

更新到最新

将当前选定的模型包的新修订提交到版本控制存储库,同时使模型包保持check out 状态。

这等效于check in包并立即再次将其check out。

仅适用于自己签出的模型包。

Get

Latest

获取最新

符合当前适用案例的工具应支持其他适用案例所需的所有扩展单元,这实际上意味着支持MARTE的所有必要特性。

Get

All Latest

获取所有最新

将项目中的所有版本控制包更新为从版本控制检索到的最新版本。

仅更新当前签入的模型包。

检索到最新修订后,系统将扫描所有受控程序包,并通过将程序包与其XMI 1.1文件进行比较来修复所有丢失的交叉引用。

如果XMI中的交叉引用信息与模型不匹配,则系统使用XMI中的信息更新模型,并将此更新记录在“系统输出”窗口中。

您可以通过选择“系统输出”窗口中的条目并使用上下文菜单选项“回滚更新”(如果选择了多个条目,则使用“回滚所选更新”)来回滚此类更新。

• 关闭模型会清除“系统输出”窗口中的条目

• 回滚更新时,也会清除“系统输出”窗口中的条目

Scan

XMI and Reconcile Model

扫描XMI和协调模型

扫描与每个项目的受控程序包相关的程序包XMI文件,并恢复在项目中检测到缺少的任何图表对象或交叉引用。

此功能在团队环境中非常有用,在团队环境中,每个用户维护自己的模型数据库的私有副本(即多个私有项目文件),并且通过使用受控程序包传播模型更新。当模型托管在所有团队成员都可以访问的单个共享数据库中时,它没有任何好处。

将每个受控程序包与其关联的XMI文件进行比较,如果模型中的交叉引用信息与XMI不匹配,则系统使用来自XMI的信息更新模型,并将更新记录在“系统输出”窗口中。

您可以通过右键单击“系统输出”窗口中的条目并选择“回滚更新”选项(如果选择了多个条目,则选择“回滚选定的更新”)来回滚此类更新。

关闭模型会清除“系统输出”窗口中的条目;当您回滚更新时,窗口中的一个条目也会被清除。

此功能作为“获取所有最新”操作的一部分自动调用。

在使用私有模型部署的环境中工作并且您的模型包含大量交叉包引用时,建议您在重新导入受控包之后不时调用“扫描XMI和协调模型”

-例如,在使用“获取最新信息”更新多个模型包之后-或在执行了许多模型包检出之后。

通常,避免在未提交模型更改的情况下运行“扫描XMI和协调模型”。通常,您:

• Check out 一些package

• 调用“扫描XMI和协调模型”

• 进行修改

• 提交所有未完成的更改,然后再签出更多模型包并再次运行“扫描XMI和协调模型”

File

Properties文件属性

显示与与当前所选模型包关联的XMI导出文件有关的版本控制属性;这也可以确定谁签出了包。

File

History

文件历史

显示当前所选模型包的更改历史记录信息。

恢复或检出该模型包的先前版本。

Compare

with Controlled Version

与受控版本比较

将当前选择的程序包与从版本控制中检索到的相关XMI文件的最新版本进行比较。

Add

Branch to Version Control

将分支添加到版本控制

只需一次操作,即可将版本控制应用于选定模型分支内的所有模型包。

在这种情况下,模型分支是当前在“浏览器”窗口中选择的“包”,其中包含所有包。

Export

as Model Branch

导出为模型分支

从您自己的模型私人副本中导出新创建的模型分支。

Import

a Model Branch

导入模型分支

检索模型分支并将其导入到源模型或另一个模型中。

Get

Package

取得包

访问版本控制存储库中模型中当前不可用的模型包。

Re-synch

Status With VC Provider

与VC提供程序重新同步状态

在不执行XMI导入或导出的情况下,更新为项目中的选定程序包记录的版本控制状态值,以使其与版本控制提供程序报告的值相匹配。

当项目中记录的程序包的版本控制状态与版本控制提供程序报告的版本控制状态不同步时,请使用此功能。

Version

Control Settings

版本控制设置

显示“版本控制设置”对话框。

火龙果软件提供团队协同建模环境的咨询服务,可以帮助用户搭建完整的团队建模和MBSE解决方案,详细信息请见http://tool.uml.com.cn/ToolsEA/introduce.asp

如果您希望了解更多信息:

也欢迎直接联系我们 zhgx@uml.net.cn ,010-62670969

后记

希望您读了此文后有所受益。

如果您有经验乐于分享,欢迎投稿给我们。

如果您对我们的培训、咨询和工具感兴趣:

svn服务器如何扫描文件,基于文件仓库进行建模协作(EA+SVN)相关推荐

  1. 扫描文件怎么设置到服务器,设置扫描到网络文件夹-HP.PDF

    设置扫描到网络文件夹-HP Color LaserJet Pro MFP M277 用户指南 /support/colorljMFPM277 HP Color LaserJet Pro MFP M27 ...

  2. 【SVN】SVN服务器搭建,客户端使用,在VS Code 中使用SVN

    1.软件下载 Apache Subversion Binary Packages ①VisualSVN 服务端 ②TortoiseSVN 客户端 ③Chinese, simplified 语言包 ④v ...

  3. 【linux】循序渐进学运维-服务篇-svn服务器单机实战

    文章目录 svn简介 运行原理 svn 单机形式安装 1. 实验环境 2. 使用yum安装svn 3. 创建版本库目录 4. 查看版块库的目录结构: 修改配置文件 1. 修改配置文件: 2. 配置用户 ...

  4. SVN服务器的搭建,它不是最全面的却是最详细易懂的~

    刚接到这个任务的时候,我的脸上写着两个大大的懵逼俩字!可以说是零基础,那时候的我对于svn客户端的熟练程度也许还不如公司内的文职,更别说服务端了! 任务到手,死扛到底,这才是我的性格~我的作战环境可以 ...

  5. Svn服务器的搭建与配置

    本文由ilanniweb提供友情赞助,首发于烂泥行天下 想要获得更多的文章,可以关注我的微信ilanniweb 要把svn代码同步到git服务器上,本来是想通过subgit直接同步进行就行了.但是自已 ...

  6. idea连接svn_搭建本地虚拟(centos)svn服务器

    因为用的笔记本电脑没有多大的硬盘和内存,要运行的环境IDEA.postgres.geoserver,为了对代码进行版本控制,同时为了可以随时迁移.所以在准备搭建虚拟svn服务器,结果证明内存确实没有增 ...

  7. svn导入 ubuntu_ubuntu搭建SVN服务器详细教程

    SVN 服务器搭建 1. 安装包 sudo apt-get install subversion 2. 添加 svn 管理用户及 subversion 组 sudo adduser svnuser s ...

  8. linux系统下SVN服务器搭建

    linux新手,整了好几天才搞好,做下笔记以备后续使用: 1.下载svn服务器 yum -y install subversion 2.创建仓库 svnadmin create /opt/svn/pr ...

  9. SVN服务器和客户端的配置

    一.SVN服务器的配置 1.分别安装TortoiseSVN,VisualSVN-Server,安装步骤省略. 2.打开VisualSVN-Server快捷键(没有快捷键的从我的电脑所有程序中打开) 3 ...

最新文章

  1. 【运筹学】表上作业法 ( 找初始基可行解 | 计算检验数 | 调整运量 )
  2. Alpha 冲刺 —— 十分之八
  3. Spring Boot 注解配置文件自动映射到属性和实体类
  4. [react] 使用react写一个todo应用,说说你的思路
  5. (数据科学学习手札45)Scala基础知识
  6. 前端笔记-css实现web自适应(当像素小于xx时隐藏此div)
  7. java enum枚举类型的使用
  8. 配置 AEM CQ6 (author + publish + apache dispatcher + ubuntu )
  9. 【BZOJ3489】A simple rmq problem(树套树)
  10. null=null不能作为关联条件
  11. 禅修内观 | 一个璀璨的思想成就
  12. cmd 新增dns_用CMD设置IP DNS的方法
  13. VM的三种网络连接方式
  14. 怎么提取pdf中的表格数据_如何从pdf第1部分中提取表格数据
  15. 基于HC-05蓝牙模块的STM32无线控制智能系统硬件开发
  16. 开关电源buck电感、电容选择
  17. 数据库为什么要分库分表
  18. 空间统计分析学习笔记
  19. cd linux 新增分区,目前国内最完整详细的 CDlinux 硬盘安装手册
  20. Java Web 后台中餐饮业报表系统开发实例

热门文章

  1. oracle 数据操作的相关参数
  2. Python多个版本指定如何指定
  3. CSS之不使用Media Queries的自适应CSS
  4. 我的世界光影mod怎么用_玩转光影!闪光灯、反光板怎么用才高级?
  5. Unity C#笔记 协程详解(转)
  6. Leetcode——300. 最长上升子序列
  7. php 获取某个月的周一
  8. ASP.NET小技巧——回传后保持页面的滚动位置
  9. IIS 崩溃的后的感受
  10. 局域主机做服务器,安装DNN,外网访问的解决办法