ClearCase проверка и выход с помощью c # - PullRequest
2 голосов
/ 19 июля 2011

По сути, я работаю над проектом, в котором я могу выбрать документ Excel в clearCase и запустить свою программу ленты, которая обновляет таблицы.В VisualStudio я хочу сделать так, чтобы документ извлекался при запуске моего надстройки, а затем возвращался обратно после завершения работы.

Это возможно?Спасибо за помощь.

Ответы [ 3 ]

2 голосов
/ 19 июля 2011

Вы можете использовать интерфейс CAL (Rational ClearCase Automation Library) и вызывать соответствующую команду из сценария VB (или макроса VB из Excel).

В этом примере CAL-сценария вы можете увидеть несколько способов сделать это, включая создание объекта cleartool.

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

ОП Берби сообщает:

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

Затем просто изменили переменные, когда вы вернетесь обратно.

2 голосов
/ 19 июля 2011

Для ClearCase существует очень мощный командный инструмент с именем cleartool. Здесь полная ссылка ClearTool Help

Я бы посоветовал вам использовать Process.Start () для запуска операций заезда / выезда. Синтаксис может быть очень простым, как:

checktool checkout "имя файла"

Другой вариант - использовать ClearCase COM API. Я не уверен, что у них также есть библиотека .NET. Jus Google для "ClearCase Automation Library (CAL)".

На самом деле, те же самые работают одинаково. Для выполнения подкоманды cleartool можно использовать только объекты CAL двухуровневого уровня. Одним из них является объект Clearcase.Cleartool (который имеет только один метод CMDEXE).

0 голосов
/ 10 августа 2011

К сожалению, он не работает должным образом с ответом, который я сформулировал ранее, потому что в итоге он добавляет другую версию в вашу ветку вместо создания другой версии в основной ветке. Я исправил эту проблему следующим образом:

    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);
    }

Таким образом, вы можете проверить это, используя собственную ветку, чтобы создать другую версию для основного документа.Это действительно важно при использовании контроля версий.

...