給定文件的標籤我知道這個TAKS一個尷尬的解決方案將是:如何找到所有在ClearCase中
- 第一次使用
ct ls
獲取文件 - 和管道的整個版本信息版本信息到解析腳本以實際獲取文件的標籤。
但我猜ClearCase應該有一個「內置」解決方案來完成這項任務,不需要任何外部腳本的支持。
如果您碰巧知道該任務的「內置」解決方案,請幫助我。
在此先感謝。
給定文件的標籤我知道這個TAKS一個尷尬的解決方案將是:如何找到所有在ClearCase中
ct ls
獲取文件但我猜ClearCase應該有一個「內置」解決方案來完成這項任務,不需要任何外部腳本的支持。
如果您碰巧知道該任務的「內置」解決方案,請幫助我。
在此先感謝。
fmt_ccase
包含各種ClearCase元素的所有格式字符串。
對於一個版本的文件,您可以:
cleartool descr -fmt "%l\n" /path/to/a/version
%l
標籤:對於版本中,所有貼有標籤;否則爲空字符串。
標籤以逗號分隔的列表形式輸出,用圓括號括起來。
A<SPACE>
字符跟隨每個逗號。變體:
%Cl
最大標籤:指定標籤的最大數目與最大場寬度參數(見Specifying field width)來顯示。
如果有更多標籤,則將「...
」附加到輸出。
如果沒有指定最大場寬度,最大缺省值是3%Nl
沒有逗號:抑制標籤列表輸出括號和逗號;
帶空格的單獨標籤。
所以結果可能是:
Labels: (Rel3.1C, Rel3.1D, Rel3.1E)
Labels without commas or parens: Rel3.1C Rel3.1D Rel3.1E
在這兩種情況下,你仍然需要解析的結果,但至少輸出可以包含只標籤,如:
Rel3.1C Rel3.1D Rel3.1E
onaclov2000增加(從評論):
唯一的問題是,您正在抓取文件特定版本的標籤。
鑑於分支等可以存在,我們需要能夠獲得文件上的所有標籤。
如果您使用版本樹圖形並選擇工具 - >「定位」,您可以看到全部附加到該文件的標籤。
在cleartool中是否有一個共同的命令會返回「locate」或「contents」的結果?
的lsvtree
(圖形版本樹)確實顯示當前由圖中看到的元素的所有版本的標籤,當你點擊「標籤名稱」
話雖這麼說,似乎沒有要一個「內置」的解決方案和一些分析涉及:
例如(這是比OP短版位,但仍然基於一個cleartool ls
):
ct ls -l [email protected]@|grep version|gawk "{gsub(/^version.*@@\\\\/,\"\",$0) ; gsub(/ \ [.*/,\"\",$0); print $0}"
(的GnuWin32語法)
,或者只能用動態的觀點:
cd m:/myView/path/to/[email protected]@
# list all files, not directories: the files are the labels
dir /B /A-D
唯一的問題是你抓取特定版本的文件上的標籤,考慮到分支等可以存在,我們需要能夠獲得文件上的所有標籤,如果你使用版本樹圖形和選擇工具 - >「定位」你可以看到所有的標籤附加到該文件,有一個共同的命令在cleartool將返回「定位」,或「內容」的結果? – onaclov2000 2010-03-24 13:26:59
@ onaclov2000:不確定關於downvote,但我已擴展我的答案以解決「列出所有標籤」查詢。 – VonC 2010-03-24 14:10:57
由於您的更新,我向您投票贊成!對不起,它不會早點來臨,我在谷歌搜索過程中再次遇到這個問題 – onaclov2000 2011-02-17 15:33:18
IBM的文章 「Additional examples of the cleartool find command」 是查找查詢的重要來源。
爲了擴大對VonC在his answer提到的 「lsvtree
」 一下,您有:
要找到任何標籤所有元素:
的Windows:
cleartool find . -type f -exec "cleartool lsvtree -a %CLEARCASE_PN%" | findstr
"("
./[email protected]@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./[email protected]@/main/BR1/1 (REL2)
./[email protected]@/main/1 (REL1)
UNIX/Linux的:
cleartool find . -type f -exec 'cleartool lsvtree -a $CLEARCASE_PN' | grep "("
./[email protected]@/main/1 (LABEL100, LABEL99, LABEL98, LABEL97)
./[email protected]@/main/BR1/1 (REL2)
./[email protected]@/main/1 (REL1)
即發現只爲當前視圖中選定的版本標籤,但你可以重用lsvtree
部分到grep帶標籤文件的所有版本。
我冒昧地在您的初始鏈接上進行了擴展。 StackOverflow是一個問答網站,旨在儘可能多地在每個答案中包含儘可能多的信息,以便限制其對外部來源的依賴性(例如,此鏈接可能會在任何時候被更改/更改)。 +1 btw。 – VonC 2011-01-20 11:29:54
@海源:剛剛完成我的答案列表*所有*文件的標籤。我恐怕沒有「內置」解決方案。 – VonC 2010-03-24 14:13:02