Как программно получить последнюю метку clearcase с C #?

Я пытаюсь поместить информацию о версии в свою среду графического интерфейса C #, полученную с последней метки ClearCase. Первоначально это было сделано из 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. Любая помощь будет принята с благодарностью.

Спасибо!


person Community    schedule 06.11.2008    source источник


Ответы (2)


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

Но вы можете напрямую вызывать некоторые COM-объекты через Интерфейс CAL, поставляемый с ClearCase.

К документации по интерфейсу можно получить доступ через справку 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
person VonC    schedule 06.11.2008

Мне действительно хотелось бы, чтобы у COM-интерфейсов была лучшая документация или они были более очевидными. Или что код ClearCase Explorer или Project Explorer был с открытым исходным кодом.

Я сделал несколько интересных вещей, но в основном я начал с добавления ссылок COM в свой проект C #, а затем начал возиться с найденными интерфейсами.

Удачи!

person Matt Cruikshank    schedule 06.11.2008
comment
Я согласен с тобой. Работая с java-проектами, я полностью инкапсулировал интерфейс командной строки cleartool с набором java-объектов, создав свой собственный API .... - person VonC; 06.11.2008