2009-06-17 5 views
2

ClearCase에서 "cleartool ls"를 사용하여 디렉토리 내용을 나열 할 수 있습니다.ClearCase : CAL을 사용하여 디렉토리 (ls)의 내용을 나열하십시오.

제 질문은 어떻게 CAL (ClearCase Automation Layer)을 사용하여 동일한 작업을 수행 할 수 있는지입니다. COM API를 선호하는 이유는 "ls"의 출력을 구문 분석 할 필요가 없기 때문입니다.

지금까지 VOB와 View를 성공적으로 가져올 수 있었지만 콘텐츠를 나열하는 방법을 찾지 못했습니다. 지금까지

내 코드 :

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

당신의 도움에 감사드립니다.

나는 interrested를 위해 C#에서 VonC의 대답을 썼습니다.

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*/} 
} 
+0

"rmname"부분에 대한 답을 작성했습니다. – VonC

+0

"ICCElement"질문에 대한 의견을 작성했습니다. – VonC

답변

1

이 좋은 시작이다 될 수있다

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 방법을 사용하는 것으로 생각합니다. 오류를 반환하지 않으면 실제로 버전 관리 된 파일입니다.


지금 나는 그것을 (rmname)을 제거하는 방법, 파일이 버전 알고. 는 복원이 불가능합니다 (cleartool rmver에 해당) 버전
경고를 제거
:

는 RemoveVersion()를 사용하지 마십시오! 이것은 잠재적으로 파괴적인 조작입니다. 어떠한 상황에서도 CAL이 입력을 요구하지 않기 때문에 RemoveVersion이 호출 될 때 확인 단계가 없습니다. RemoveVersion을 호출하면 -force 옵션을 사용하여 cleartool rmver을 실행하는 것과 같습니다.

대신 ICCElement 인터페이스에서 RemoveName을 사용하십시오.

+0

CC.Version (".")은 현재 디렉토리를보기 경로 (C#의 Environement.CurrentDirectory를 통해)로 설정 한 경우에만 작동합니다. 그런 경우 두 번째 줄을 제거하지 않고 "Set Folder = FSO.GetFolder ("-보기 경로 - ")"를 수행 할 수 있습니까? 즉, 두 번째 줄이 필요합니까? Ty. –

+0

당신이 언급하는 경우,이 두 번째 라인은 실제로 불필요합니다. 하지만 아직 완전히 테스트하지는 않았습니다. – VonC

+0

다시 확인해주세요. 만약 내가 조금 더 질문을 추가 감히. 이제 파일의 버전이 지정되었는지, 어떻게 제거 할 수 있습니까 (rmname)? RemoveVersion (...)이 있지만 rmname과 같은지 확실하지 않습니다. –

관련 문제