Pregunta

En ClearCase, puede enumerar el contenido de un directorio usando " cleartool ls " ;.

Mi pregunta es cómo puedo hacer lo mismo usando CAL (ClearCase Automation Layer). La razón por la que prefiero la API COM es porque no tendré que analizar la salida de "ls".

Hasta ahora, puedo obtener el VOB y la Vista con éxito, pero no encontré ningún método para enumerar el contenido.

Mi código hasta ahora:

IClearCase cc = new ApplicationClass();
CCVOB vob = cc.get_VOB("\\VOB-name");
CCView view = cc.get_View("ViewTag");

Gracias por su ayuda.

Escribí la respuesta de VonC en C # para los interesados.

string[] files = Directory.GetFiles("View path here", "*.*", SearchOption.AllDirectories);
foreach (string file in files)
{
    try
    {
            CCVersion ver = cc.get_Version(file);
            Console.WriteLine(ver.Path);
    }
    catch(Exception) {/*the file is not versioned*/}
}
¿Fue útil?

Solución

Puede ser un buen comienzo:

Set CC = Wscript.CreateObject("ClearCase.Application") 
Set DirVer = CC.Version(".") 
Set FSO = CreateObject("Scripting.FileSystemObject") 
Set Folder = FSO.GetFolder(DirVer.Path) 
Wscript.Echo "Files under source control: " 
For Each File in Folder.Files 
     On Error Resume Next 
     Set Ver = CC.Version(File.Name) 
     If Err.Number = 0 Then 
           Wscript.Echo Ver.ExtendedPath 
     End If 
Next

La idea es utilizar los métodos ICCVersion para intentar acceder a la versión de un archivo. Si no devuelve un error, de hecho es un archivo versionado.


  

Ahora sé que el archivo está versionado, ¿cómo puedo eliminarlo (rmname)?

No utilice RemoveVersion () :
Elimina irremediablemente la versión (equivalente a cleartool rmver )
¡ADVERTENCIA! Esta es una operación potencialmente destructiva. Debido a que CAL no solicita al usuario la entrada bajo ninguna circunstancia, no hay un paso de confirmación cuando se invoca RemoveVersion . Invocar RemoveVersion es equivalente a ejecutar cleartool rmver con la opción -force .

En su lugar, use el RemoveName de la interfaz ICCElement .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top