Как получить последнюю метку прозрачного регистра программно из C #? - PullRequest
3 голосов
/ 06 ноября 2008

Я пытаюсь поместить информацию о версии в мою структуру 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 ]

1 голос
/ 06 ноября 2008

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

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

Доступ к документации для интерфейса можно получить через справку ClearCase («Пуск»> «Программы»> «Rational ClearCase»> «Справка ClearCase»), где есть запись для «библиотеки автоматизации ClearCase (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
0 голосов
/ 06 ноября 2008

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

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

Удачи!

...