使用c#进行ClearCase检入和检出

基本上我正在一个项目中,我可以在clearCase中select一个excel文件,并运行我的function区程序来更新表格。 我想在VisualStudio中做的事情是让文档在运行我的插件时得到检查,但是一旦运行完成,就会将其检查回来。

这可能吗? 谢谢您的帮助。

ClearCase命名为cleartool有一个非常强大的命令工具。 这里是完整的参考ClearTool帮助

我build议你使用Process.Start()来触发签入/签出操作。 语法可能非常简单,例如:

cleartool结帐“文件名”

另一个select是使用ClearCase COM API。 我不知道他们也有一个.NET库。 JUS谷歌“ClearCase自动化库(CAL)”。

事实上,那些工作是一样的。 只有两个级别的CAL对象可以用来执行cleartool子命令。 其中之一是Clearcase.Cleartool对象(它只有一个方法CMDEXE)。

您可以使用CAL接口 (Rational ClearCase自动化库),并从VB脚本 (或Excel中的VBmacros)中调用适当的命令。

在这个CAL脚本示例中 ,可以看到几种方法,包括创buildcleartool对象。

Set CL = CreateObject("ClearCase.ClearTool") 

这里是另一个例子 ,从VB脚本执行结账。

 Dim CC As object Dim Ver As object Dim CheckedOutFile As object On Error Resume Next Set CC = CreateObject("ClearCase.Application") 'Return message regarding ability to connect to Clearcase If CC Is Nothing Then MsgBox "NOTHING" Exit Sub Else MsgBox "CONNECTED" End If 'Find the Version of the ClearCase File Set Ver = CC.Version("\\view\gustaf-pc_localView\ScriptTest\testModel.mdl") MsgBox "version = " & Ver 'Checkout file Set CheckedOutFile = Ver.CheckOut(ccReserved, "test checkout") If Err.Number <> 0 Then MsgBox "Checkout Error: " & Err.Description Else MsgBox "Checkout successful" End If 

OP Berbies报告:

 ClearCase.ClearTool checkingOut = new ClearCase.ClearTool(); string fileOut = @"fileName"; checkingOut.CmdExec(@"checkout """ + fileOut + @""""); 

然后只是改变了当你检查回来的variables。

不幸的是,它与我之前说过的答案无法正常工作,因为它最终做的是将另一个版本添加到您的分支,而不是在主分支中创build另一个版本,我解决了这个问题:

  void GetVersions(string sourcefile) { ClearCase.CCElement element = m_CC.get_Element(sourcefile); if (element != null) { ClearCase.CCVersion latestVersion = null; FileInfo fi = new FileInfo(sourcefile); latestVersion = element.get_Version(); if (latestVersion != null) { ClearCase.CCBranch branch = latestVersion.Branch; ClearCase.CCCheckedOutFile file = latestVersion.CheckOut(ClearCase.CCReservedState.ccReserved, "", false, ClearCase.CCVersionToCheckOut.ccVersion_SpecificVersion, true, false); string path = file.ExtendedPath; } } } void checkIn(string sourcefile) { ClearCase.CCElement element = m_CC.get_Element(sourcefile); element.CheckedOutFile.CheckIn("", true, sourcefile, ClearCase.CCKeepState.ccKeep); } 

这样,您可以使用您自己的分支为主文档创build另一个版本。 使用源代码控制时,这非常重要。