我在使用CVS共享模型的多用户环境中工作。
模型很大,有很多包。有时候,我在没有意识到的情况下检查了包裹,阻止其他人使用包裹。
有没有什么方法可以列出我签出的所有套餐,以便我可以查看我不需要的套餐?
答案 0 :(得分:4)
正如@Uffe指出的,我已经创建了一个JScript来解决问题:
!INC Local Scripts.EAConstants-JScript
/*
* Script Name: ListingCheckOutPackages
* Author: Stepanus David Kurniawan
* Purpose: List all packages which are checked out by this user or other user recursively
* Date: 05-05-2014
*/
// CheckOutStatus
var csUncontrolled = 0;
var csCheckedIn = 1;
var csCheckedOutToThisUser = 2;
var csReadOnlyVersion = 3;
var csCheckedOutToAnotherUser = 4;
var csOfflineCheckedIn = 5;
var csCheckedOutOfflineByUser = 6;
var csCheckedOutOfflineByOther = 7;
var csDeleted = 8;
/*
* Project Browser Script main function
*/
function OnProjectBrowserScript()
{
Repository.EnsureOutputVisible( "Script" );
Repository.ClearOutput( "Script" );
// Get the type of element selected in the Project Browser
var treeSelectedType = Repository.GetTreeSelectedItemType();
switch ( treeSelectedType )
{
case otPackage :
{
// Code for when a package is selected
var thePackage as EA.Package;
thePackage = Repository.GetTreeSelectedObject();
Session.Output("----------------------------------------");
Session.Output("... listing check out packages under " + thePackage.Name + "...");
GetSubpackage(thePackage);
Session.Output("----------------------------------------");
break;
}
default:
{
// Error message
Session.Prompt( "This script does not support items of this type.", promptOK );
}
}
}
var depth = 0;
function GetSubpackage( thePackage )
{
var contextPackage as EA.Package;
contextPackage = thePackage;
depth++;
// Iterate through all child packages
for (var i = 0 ; i < contextPackage.Packages.Count; i++)
{
var currentPackage as EA.Package;
currentPackage = contextPackage.Packages.GetAt(i);
//Session.Output(new Array(depth * 4 + 1).join(' ') + currentPackage.Name + currentPackage.VersionControlGetStatus());
switch (currentPackage.VersionControlGetStatus())
{
case csCheckedOutToThisUser:
Session.Output("[Checked out to this user ] " + currentPackage.XMLPath);
break;
case csCheckedOutToAnotherUser:
Session.Output("[Checked out to other user] " + currentPackage.XMLPath);
break;
}
// Recursively process child packages
GetSubpackage( currentPackage );
}
depth--;
}
OnProjectBrowserScript();
答案 1 :(得分:4)
Enterprise Architect具有完全符合您需求的内置查询:
按Ctrl + F打开“在项目中查找”窗口。将显示搜索窗口。
在顶部,您会看到一个“搜索:”下拉列表,默认情况下设置为“简单”。
从下拉列表中选择最后一个选项:“我的签出包裹”。
按“运行”按钮或F5获取列表。
答案 2 :(得分:2)
据我所知,(在EA 10中)没有显示此信息的GUI对话框。您可以做的是编写项目浏览器类型的in-EA脚本来执行此检查。这样的脚本将遍历包层次结构,并为每个脚本调用Package::VersionControlGetStatus()
。
检查自动化和脚本 - Enterprise Architect对象模型 - 参考下的帮助文件。 Package类位于Repository包中,并且有代码示例向您展示如何遍历层次结构。
答案 3 :(得分:1)
您还可以在
下列出您的锁项目 - &gt;安全 - &gt;管理我的锁...
如果您使用的是基于锁的访问控制。
答案 4 :(得分:1)
对于EA 12作为州,最佳答案适用于下一步的其他步骤:
答案 5 :(得分:-2)
对于EA 13.5,可以使用内置选项: 菜单配置->子菜单管理->管理我的锁