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。任何帮助将不胜感激。

谢谢!

4

2 回答 2

1

我相信这可以通过脚本更好地实现,该脚本将从您的 C# 程序中调用。

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

可以通过 ClearCase 帮助(开始>程序>Rational ClearCase>ClearCase 帮助)访问该界面的文档,其中有一个“ClearCase 自动化库 (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
于 2008-11-06T17:54:46.370 回答
0

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

我做了一些很酷的事情,但我基本上是从向我的 C# 项目添加 COM 引用开始的,然后开始使用我找到的接口。

祝你好运!

于 2008-11-06T17:50:29.173 回答