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

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

Спасибо!

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

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

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

Удачи!

Другие вопросы по тегам