¿Cómo obtengo la última etiqueta de clearcase programáticamente de C #?
Pregunta
Estoy tratando de poner información de la versión en mi marco C # GUI recuperado de la última etiqueta ClearCase. Esto se hizo originalmente de Visual Soursafe como se muestra a continuación.
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;
}
}
Estoy tratando de hacer algo similar usando ClearCase ya que cambiamos nuestro control de código fuente de VSS a CC. Cualquier ayuda sería muy apreciada.
¡Gracias!
Solución
Creo que esto podría lograrse mejor a través de un script, que se llamaría desde su programa C #.
Pero puede llamar directamente a algunos objetos COM, a través de interfaz CAL proporcionada con ClearCase.
Se puede acceder a la documentación de la interfaz a través de la ayuda de ClearCase (Inicio > Programas > Rational ClearCase > Ayuda de ClearCase), donde hay una entrada para " ClearCase Automation Library (CAL) " ;. Una ruta alternativa es buscar en el directorio ClearCase / bin " cc_cal.chm " ;.
En VB, con CAL API, eso daría algo como:
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
Otros consejos
Realmente desearía que las interfaces COM tuvieran una mejor documentación, o fueran más obvias. O que el código para ClearCase Explorer o Project Explorer era de código abierto.
He hecho algunas cosas geniales, pero empecé agregando referencias COM a mi proyecto C #, y luego comencé a jugar con las interfaces que encontré.
¡Buena suerte!