ClearCase: список содержимого каталога (ls) с использованием CAL

StackOverflow https://stackoverflow.com/questions/1008220

Вопрос

В ClearCase вы можете перечислить содержимое каталога, используя " cleartool ls ".

У меня вопрос, как я могу сделать то же самое, используя CAL (ClearCase Automation Layer). Причина, по которой я предпочитаю COM API, заключается в том, что мне не нужно анализировать выходные данные < ls ".

Пока я могу успешно получить VOB и представление, но я не нашел никакого способа для отображения содержимого.

Пока мой код:

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

Спасибо за вашу помощь.

Я написал ответ VonC на C # для интересующихся.

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*/}
}
Это было полезно?

Решение

Может быть, это хорошее начало:

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

Идея состоит в том, чтобы использовать методы ICCVersion для доступа к версии файла. Если он не возвращает ошибку, это действительно версионный файл.

<Ч>
  

Теперь я знаю, что файл имеет версию, как я могу удалить его (имя_пользователя).

Не используйте RemoveVersion () :
Безвозвратно удаляет версию (эквивалентно cleartool rmver )
ПРЕДУПРЕЖДЕНИЕ! Это потенциально разрушительная операция. Поскольку клиентская лицензия не запрашивает ввод у пользователя ни при каких обстоятельствах, шаг подтверждения при вызове RemoveVersion отсутствует. Вызов RemoveVersion эквивалентен запуску cleartool rmver с параметром -force .

Вместо этого используйте RemoveName из интерфейса ICCElement .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top