2009-06-17 11 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"); 

はあなたの助けをいただき、ありがとうございます。

私はVonCの答えをC#でインターラプトした人に書いています。

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メソッドを使用しているのアイデア:

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

が、これは良いスタートであるように。エラーを返さない場合は、実際にはバージョン管理されたファイルです。


今私は、ファイルがバージョン管理されている知って、どのように私は(rmnameを)それを削除することができます。 は取り返しのつかないほど(cleartool rmverに相当)バージョン
警告を削除し

はRemoveVersion()を使用しないでください!これは潜在的に破壊的な操作です。どのような状況でもCALはユーザーに入力を促さないので、RemoveVersionが呼び出されたときに確認のステップはありません。 RemoveVersionを呼び出すのは、-forceオプションを指定してcleartool rmverを実行するのと同じです。

代わりにICCElementインターフェイスのRemoveNameを使用してください。

+0

CC.Version( "。")は、現在のディレクトリを(C#のEnvironement.CurrentDirectoryを介して)ビューパスに設定した場合にのみ機能します。その場合、2行目を削除するだけで、 "Set Folder = FSO.GetFolder(" - ここでのビューパス - ")"を実行することはできません。 つまり、2行目が必要ですか? Ty。 –

+0

あなたが言及した場合、この2行目は本当に不要です。しかし私はまだ完全にテストしていません。 – VonC

+0

もう一度やり直してください。私がもう少し小さな質問を追加するつもりなら。今、私はファイルがバージョン管理されていることを知っています、どうすれば削除できますか(rmname)。 RemoveVersion(...)がありますが、rmnameに相当するかどうかわかりません。 –

関連する問題