基本上,我正在进行一个项目,在这个项目中,我可以选择一个在ClearCase中的Excel文档,并运行我的功能表程序,将表格更新到该文档中。在VisualStudio中,我想做的是在运行我的插件时,使文档被签出,但完成运行后再进行签入。
这是否可能?
感谢您的帮助。
这是否可能?
感谢您的帮助。
有一个非常强大的ClearCase命令工具,名为cleartool。这里是完整的参考ClearTool帮助
我建议您使用Process.Start()触发签入/签出操作。语法可能非常简单,如:
cleartool checkout "filename"
另一个选项是使用ClearCase COM API。我不确定他们是否也有.NET库。只需搜索“ClearCase Automation Library(CAL)”即可。
实际上,它们以相同的方式执行相同的工作。只有两个顶级CAL对象可以用于执行cleartool子命令。其中之一是Clearcase.Cleartool对象(它只有一个方法CMDEXE)。
Set CL = CreateObject("ClearCase.ClearTool")
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
发帖者Berbies报告:
ClearCase.ClearTool checkingOut = new ClearCase.ClearTool();
string fileOut = @"fileName";
checkingOut.CmdExec(@"checkout """ + fileOut + @"""");
很遗憾,它与我之前提到的答案不兼容,因为它最终会在您的分支中添加另一个版本,而不是在主分支中创建另一个版本。我通过以下方式解决了这个问题:
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);
}
这样,您可以使用自己的分支将其检查回来,以创建主文档的另一个版本。在使用源代码控制时,这非常重要。