2009-11-24 36 views
2

我正在嘗試設置TeamCity與ClearCase一起工作以實現持續集成,並且我遇到了一些問題。 TeamCity抱怨說它無法爲構建構建補丁。我一直在互聯網上搜索有關ClearCase和TeamCity的信息,並且有關該主題的信息量非常少。有沒有人獲得TeamCity與ClearCase合作?設置TeamCity與ClearCase配合使用

這裏是我的生成日誌:

[18:09:11]: Updating sources (2s) 
[18:09:13]: [Updating sources] Failed to build patch for build #1.0.23-November-2009.18:09:09, build id: 10, VCS root: ClearCase, due to error: Cannot get version in view 'D:\CCdata\my_vob\my_project' for the directory D:\CCdata\my_vob\my_project 
[18:09:13]: Will repeat attempt when server will be available, number of attempts left: 2 
[18:09:23]: Updating sources (1s) 
[18:09:25]: [Updating sources] Failed to build patch for build #1.0.23-November-2009.18:09:09, build id: 10, VCS root: ClearCase, due to error: Cannot get version in view 'D:\CCdata\my_vob\my_project' for the directory D:\CCdata\my_vob\my_project 
[18:09:25]: Will repeat attempt when server will be available, number of attempts left: 1 
[18:09:35]: Updating sources (2s) 
[18:09:37]: [Updating sources] Failed to build patch for build #1.0.23-November-2009.18:09:09, build id: 10, VCS root: ClearCase, due to error: Cannot get version in view 'D:\CCdata\my_vob\my_project' for the directory D:\CCdata\my_vob\my_project 
[18:09:37]: [Updating sources] Patch is broken, can be found in file: C:\TeamCity\buildAgent\temp\cache\temp58518patch10 
[18:09:37]: [Updating sources] Error while applying patch: Failed to build patch for build #1.0.23-November-2009.18:09:09, build id: 10, VCS root: ClearCase... 

這裏的teamcity-vcs.log文件:

+0

剛剛完成我的回答針對你註釋。 – VonC

+0

剛剛在http://www.jetbrains.net/devnet/thread/285255上看到了您的(更多文檔)報告。你可以: - 在'runAll.sh'或'runAll.bat'中用'-Dcc.log.commands = true'開始teamcity - 設置VCS日誌記錄的調試級別(在'TEAMCITY_HOME/conf/teamcity-server-log4j。 xml'): - 然後附上您的問題您的VCS日誌文件('TEAMCITY_HOME/logs/teamcity-vcs.log')? – VonC

+0

剛剛在我的回答中添加了一個修改後的配置規範,供您測試 – VonC

回答

2

此錯誤是由我的配置規範引起的。用模式/ My_vob/...更改兩行似乎可以解決問題。我不知道爲什麼TeamCity更精確的模式有問題,但將其改爲*似乎解決了這個問題。

這裏是原來的配置規格:

#View files that are checked out. 
element * CHECKEDOUT 

#View files under the MyProject/LATEST branch. 
element /My_vob/... .../MyProject/LATEST 

#Create the MyProject branch. 
element -file /My_vob/... R5.0.0.0 -mkbranch MyProject 
element -dir * /main/LATEST -mkbranch MyProject 

我只是改變了兩行(更換/ My_vob/...的出現與*)

#View files that are checked out. 
element * CHECKEDOUT 

#View files under the MyProject/LATEST branch. 
element * .../MyProject/LATEST 

#Create the MyProject branch. 
element -file * R5.0.0.0 -mkbranch MyProject 
element -dir * /main/LATEST -mkbranch MyProject 
+0

這是因爲'/ ...'是指'元素及其所有子元素'。含義'/ My_vob/... .../MyProject/LATEST'表示'My_Vob'必須有一個'MyProject'分支,它可能不一定有。因爲如果'My_Vob'沒有'MyProject'分支,它就直接跳到規則'element -dir */main/LATEST -mkbranch MyProject',選擇'/ main/LATEST',等待任何改變來創建一個'MyProject'分支。接得好。 +1 – VonC

3

如問題Continuous Integration with Teamcity and Clearcase提到的,我們(我和一個同事)還是設法讓TeamCity的使用ClearCase有效的互動,但:

  • 僅改寫後的ClearCase的插件,並
  • 只有Wi個動態的意見,更改查找源(一個大的快照視圖的更新無非是花費太多時間)

動態視圖是去這種插件的唯一途徑,但原來的執行效率不高(做一些cleartool describe文件已經改變!)

的「路徑ClearCase視圖」應該是指一個完整路徑ClearCase視圖中的資源(見this thread例如)

錯誤消息在may 2009中出現,但當時已修復。你使用什麼路徑?


關於your report on JetBrain,您的配置規範似乎對我來說很奇怪。
我會去的:

#View files that are checked out. 
    element * CHECKEDOUT 

    #View files under the MyProject/LATEST branch. 
    element /My_vob/... .../MyProject/LATEST 

    #Create the MyProject branch. 
    element -file /My_vob/... R5.0.0.0 -mkbranch MyProject 
    element -dir * /main/LATEST -mkbranch MyProject 

    load /My_vob 

(注:

  • 的 '/',而不是 '\ ':既與ClearCase運作良好,但TeamCity的插件似乎更喜歡' /'
  • .../MyProject而不是/main/MyProject:避免假設分支在哪裏
+0

我試圖讓TeamCity使用快照視圖或動態視圖。我猜動態視圖是要走的路,因爲每個人都在抱怨快照視圖有多慢。我甚至無法獲得動態視圖設置。我很困惑在VCS設置的ClearCase視圖路徑中放置什麼。我不斷收到錯誤信息:'不是ClearCase視圖的路徑'。 –

+0

我知道它接受動態視圖的視圖路徑,但我仍然在原始帖子中看到完全相同的錯誤:「無法構建修補程序以進行構建」.....「無法獲取版本。」 –

+0

這可能是ClearCase中的權限問題嗎?我有TeamCity安裝程序使用我的用戶帳戶,也許我的用戶帳戶沒有正確設置爲TeamCity或甚至在此動態視圖上進行正常操作。 –

1

安德魯,我們遇到了同樣的問題,您現在正在經歷。

Jetbrains的插件是致命的缺陷,他們做了很多ct lsvtree和ct描述來構建一個緩存,以查找什麼版本是在什麼時間創建的(在clearcase視圖下可見每個元素的每個版本)。 這就是爲什麼我們編寫我們自己的插件。它使用clearcase config規範的time指令作爲VonC在此處描述的:Continuous Integration with Teamcity and Clearcase