如何用C#编程获取最新的ClearCase标签?

3

我正在尝试将最新ClearCase标签检索到的版本信息放入我的C# GUI框架中。最初是通过Visual Soursafe完成的,如下所示。

vssDB = new VSSDatabaseClass();
vssDB.Open( databaseName, "vssadmin", "vssadmin" );
VSSItem item = vssDB.get_VSSItem( @"$\BuildDCP.bat", false );
foreach(VSSVersion vssVersion in item.get_Versions(0))
{
  // Pull the first non-blank label and use that
  if ( vssVersion.Label != "" )
  {
    labelID = vssVersion.Label.ToString();
    break;
  }
}

我正在尝试使用ClearCase完成类似的操作,因为我们将源代码控制从VSS更改为CC。非常感谢您的帮助!
2个回答

1

我认为这可以通过一个脚本来更好地实现,该脚本将从您的C#程序中调用。

但是,您可能能够直接通过ClearCase提供的CAL接口调用一些COM对象。

接口的文档可以通过ClearCase帮助(开始>程序>Rational ClearCase>ClearCase帮助)访问,在那里有一个名为“ClearCase Automation Library(CAL)”的条目。另一条路径是在ClearCase/bin目录中查找“cc_cal.chm”。

在VB中,使用CAL API,可以得到类似以下内容:

Dim CC As New ClearCase.Application 
Dim labelID As String
Set aVersion = CC.Version("[Path-To]\BuildDCP.bat");
Set someLabels = Ver.Labels;
If (someLabels.Count > 0) Then 
    ' the first label listed is the most recently applied
    labelID = someLabels.Item(1).Type.Name
EndIf

0

我真的希望COM接口有更好的文档,或者更加明显。或者ClearCase Explorer或Project Explorer的代码是开源的。

我已经做了一些很酷的事情,但基本上是通过将COM引用添加到我的C#项目中,然后开始尝试找到的接口。

祝你好运!


我非常同意你的观点。在Java项目中,我完全使用一组Java对象封装了cleartool命令行界面,从而创建了自己的API... - VonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接