man ページを見てcleartool diffbl
も、書式設定オプションがありません。
つまり、そのコマンドの結果を解析し、必要なものを表示するためにfmt_ccase オプションcleartool describe -fmt
の 1 つを使用して、各アクティビティを にフィードする必要があります。
このスレッドは、従うべきプロセスのアイデアを提供しますが、必要に応じて Windows に適合するように bash (unix) に含まれています。
for act in $(ct diffbl -act bl1@/vobs/apvob bl2@/vobs/apvob | grep ">>" | grep -v "deliver." | cut -f2 -d " "); do echo "Activity: $act"; cleartool desc -fmt "%d\n" activity:$act; echo; done
読みやすくするために複数行で:
for act in $(ct diffbl -act bl1@/vobs/apvob bl2@/vobs/apvob
| grep ">>"
| grep -v "deliver."
| cut -f2 -d " ");
do
echo "Activity: $act"; cleartool desc -fmt "%d\n" activity:$act; echo;
done
「 ClearCase UCM アクティビティに関連付けられたファイルを見つける方法は?deliver.
」で説明されているように、「 」アクティビティを除外することで、貢献アクティビティのみに注目していることに注意してください。
OP Laxは、アクティビティの名前の抽出に成功したことを次のように報告しています。
desc -fmt "%Nd\n" "activity:myActivityId"
(@\pvob
すでにdiffbl
コマンドの結果の一部です。Laxは結果activityid
からを解析diffbl
してコマンドに入れていますdesc
)
彼は次のように付け加えます。
C# のコンテキストでこれが必要なので、解析は他の文字列の解析と同じです。正規表現を使用して、関心のあるアクティビティに出力を分離しています。元:
Regex.Matches(diffBlOutput, "myInterestedPattern");
そして、正規表現結果の一致ごとに、次のアクティビティを取得します
RegexMatch.Groups["activity"].ToString()
activityid
activtyid activityName
結果は常に " " であるため、実際にはこの文字列の部分文字列なので、substring(0,result.indexOf(' '));
アクティビティ ID を取得します。