上一页 下一页

版本控制

本主题提供在Enterprise Architect中的模型上使用版本控制时常见问题的答案

问题

回答

参看

为什么会收到“在获取'最新'/'获取所有最新'期间内存不足”的消息?

可能会出现此错误,因为在“获取所有最新”操作期间导入的XMI文件太大。如果您尚未这样做,我们建议通过将版本控制应用于模型层次结构中的所有Package来减小XML文件的大小。使用“将分支应用于版本控制”选项是执行此操作的最简单方法。请参阅 将版本控制应用于分支帮助主题。

通过允许用户仅签出所需的包,这将改善版本控制功能的性能,并减少共享模型时遇到的“锁定”程度。您可以在《 版本控制最佳实践》白皮书中找到此建议。

版本控制最佳做法白皮书 将版本控制应用于分支

为什么我得到“ svn:'。” 版本控制设置时出现“不是工作副本”错误?

该错误从SVN命令行客户端传递。这表明SVN无法识别您指定为实际SVN工作副本目录的“工作副本路径”。

请确保按照 创建Subversion环境帮助主题中所述配置版本控制。

特别是,请确保您可以执行“ 验证SVN工作区帮助”主题中提到的命令,然后尝试再次配置Enterprise Architect的版本控制设置。

创建一个Subversion环境 验证SVN工作区

为什么我收到消息“用户'UserName'在此模型上调用的'Get All Latest'命令尚未完成”?

“获取所有最新信息”命令可能会花费大量时间来运行和完成。因此,Enterprise Architect设置一个标志来指示该命令正在进行中。该过程完成后,将清除该标志。如果您知道“获取所有最新信息”进程目前尚未实际运行,则可以安全地进行结帐(即,单击“ 是”按钮)。

只需调用“获取所有最新”命令,然后在显示第一条提示消息时单击“取消”,即可重置标志。当然,只要完成“获取所有最新”操作,该标志也会重置。重置标志后,对于任何软件包,将不再显示消息“ ...尚未完成”。

在执行“获取所有最新信息”时,请确保使用“仅导入更改的文件”选项。

更新所有软件包的最新修订版

如果用户将包裹退房但无法签入该怎么办?

如果用户未签出软件包,则他们无权签入,则可以使用版本控制软件(例如TortoiseSVN)清除XMI文件上的锁定,然后使用“与VC提供程序重新同步状态” Enterprise Architect中的“选项”以使您可以访问该软件包。

请参阅“ 重新同步版本控制软件包的状态”帮助主题。如前所述,这可能会导致一些数据丢失。

重新同步版本控制包的状态

我可以在导出的版本控制的程序包中包含备用映像吗?

如果所有用户都启用“导出备用图像”选项(“开始>视图>首选项> XML规范”),则备用图像将包含在导出和导入的XMI文件中。

XML规范

如何避免版本控制的序列图损坏?

为避免版本控制中的序列图出现问题,请确保将生命线作为对象元素创建在与该图相同的包中。

请参阅 序列图和版本控制帮助主题。

顺序图和版本控制

如何从项目中删除版本控制?

当前的选择是:一次断开软件包的连接(如 从控件中删除软件包</ i>帮助主题中所述),或运行模型脚本。</ span> </ p>

这是您可以使用的示例VBScript。 尽管这对于Sparx Systems来说是正确的测试,但是我们建议您对模型进行备份,以防出现无法预料的问题。 有关使用脚本的信息,请参见 脚本</ i>帮助主题。</ span> </ p>

VBScript - VB_Remove_AllPkgs

-------------------------------------------------------------

option explicit

'

' Related APIs

' =====================================

' Package API - https://sparxsystems.com/uml_tool_guide/package_2.html

' Element API - https://sparxsystems.com/uml_tool_guide/element2.html

' Repository API - https://sparxsystems.com/uml_tool_guide/repository3.html

dim g_pkg as EA.Package

dim g_lvl

sub RemoveVersionControlledPackageAll()

Session.Output( "VBScript RemoveVersionControlledPackageAll" )

Session.Output( "=================" )

dim i, n

g_lvl = 0

n = Repository.Models.Count - 1

for i = 0 to n

  set g_pkg = Repository.Models.GetAt(i)

  RemoveVersionControlledPackage

next

Repository.Models.Refresh()

Session.Output( "Done!" )

end sub

sub RemoveVersionControlledPackage()

dim i, n

dim p as EA.Package

on error resume next

if g_pkg.IsVersionControlled then

  Session.Output( g_lvl & "-" & g_pkg.Name )

  g_pkg.VersionControlRemove

  Repository.Models.Refresh

  Session.Output( g_lvl & "-" & g_pkg.Name )

end if

g_lvl = g_lvl + 1

set p = g_pkg

n = p.Packages.Count - 1

for i = 0 to n

  set g_pkg = p.Packages.GetAt(i)

  RemoveVersionControlledPackage

next

set g_pkg = p

g_lvl = g_lvl - 1

end sub

RemoveVersionControlledPackageAll

------------------------------------------------

从控件中删除程序包 脚本编写

我可以在Enterprise Architect中使用版本控制分支吗?

Enterprise Architect的版本控制集成不支持分支。使用版本控制集成(即与SVN和CVS之类的外部提供程序集成)时,特定包只能由单个用户在给定时间签出。

如果确实需要分支/合并,则可以考虑“使用基线分支”方法,该方法在“ 部署Enterprise Architect”白皮书的“ 使用基线分支” 部分中进行了介绍。

部署Enterprise Architect白皮书

Enterprise Architect是否支持Git版本控制集成?

Enterprise Architect不支持与用于版本控制的Git集成。

您可以使用Enterprise Architect的“受控程序包”功能,而无需显式的版本控制集成。 这样,您可以为每个软件包预先设置保存和加载XMI的路径。 如果将其放入Git工作目录中,则可以在使用save和load命令时手动执行Git命令。

请参阅 受控程序包帮助主题,尤其是 带有XMI的手动版本控制帮助主题。

或者:

  • 考虑使用Enterprise Architect支持的产品之一进行版本控制集成,或,
  • 考虑使用共享的DBMS存储库和Enterprise Architect的Package Baseline功能,尤其是“ 部署Enterprise Architect”白皮书的“ 使用基准分支 ” 部分中所述的“ 加载其他基准”功能。
部署企业架构师白皮书 系统要求 受控包装 使用XMI进行手动版本控制