2012-04-20 18 views

回答

3

我不會推薦設置一個視圖,因爲setview本身產生一個新的過程。
我真的很喜歡用(cleartool startview viewTag

的「重生過程」的問題,使所有的事情在我看來太複雜/view/viewTag/aVob/...starting the view的工作,並解釋了爲什麼你有這樣的技術說明:

cleartool setview cmview執行之後所出現的任何命令都沒有處理,因爲一個殼與exec(),其與一個新的程序替換當前程序催生關閉。

這意味着當前進程的文本和代碼段(在本例中爲包含所有命令的腳本)被執行的程序替換,該程序是由運行cleartool setview cmview調用的shell。
因此,除了調用setview之外,沒有任何命令被處理。

-exec變量將啓動子外殼進程並在指定的動態視圖調用指定的命令。一旦命令完成,控制就會返回到父shell。
-exec將不會在父shell進程中設置視圖。
-exec衍生子shell將繼承父shell進程的環境變量;但是,在子shell中創建的環境變量將不會傳遞迴父shell。

所以,如果你真的想用setview,你可以(不直接測試自己):

  • 有一個python腳本調用setview
  • setview通話將與-exec參數是另一個python腳本(當/vobs被配置爲所述設置視圖的內容時,做你想做的事情。
+0

我在通過/ view訪問視圖時遇到問題。我試圖在所有視圖中運行一組命令,爲此,我必須設置每個視圖以通過/ view使視圖可用。此外,此腳本需要定期運行,視圖只能通過/查看臨時時間。感謝您的迴應。 – user1347345 2012-04-20 19:59:04

+0

@ user1347345:就是不。如果您知道需要訪問的視圖的名稱,請啓動它,它將在'/ view/viewTag/...'處出現。將'viewTag'名稱作爲參數傳遞給腳本,並且它們將訪問正確的路徑。比處理子shell要簡單得多。 – VonC 2012-04-20 20:07:12

+0

@ user1347345我用一個可能的「setview」解決方案編輯了我的答案......但我仍然發現所有的過程都很麻煩。直接使用完整路徑將是首選方式。 – VonC 2012-04-20 20:21:28

0

舊的線程,但我只是不得不在這個問題上工作,所以也許有幫助。

在你的Python腳本

process = subprocess.Popen('usr/atria/bin/cleartool setview viewName') 
(out, err) = process.communicate('python script2Name') 

的.communicate可以通過新的命令,如果你將它傳遞給一個新的shell(終端)。