2009-01-12 28 views
3

我使用CruiseControl .NET和Subversion源代碼控制插件來自動構建我們的項目。使用CruiseControl .NET和Subversion時處理svn鎖定/清理

有些項目會自動檢查修改,但偶爾檢查失敗和CruiseControl的.NET與「異常」標誌着該項目:

ThoughtWorks.CruiseControl.Core.CruiseControlException: Source control operation failed: svn: Working copy 'xxFilename' locked svn: run 'svn cleanup' to remove locks (type 'svn help cleanup' for details) 

這之後我必須手動登錄到服務器並做在項目再次構建之前,在文件夾中進行svn清理。有沒有解決方法?

回答

6

新的Cruise Control.Net 1.4.4服務器在Subversion Source Control Block上有兩個額外的屬性。

CCNET Documentation - Subversion Source Control Block

清理和恢復性能你想要做什麼。

+0

這些屬性只從版本1.4.4.95開始有用。請參閱http://groups.google.com.ag/group/ccnet-user/browse_thread/thread/f69ca9e5f1b33aff/0212e831fdf6fa8b?lnk=gst&q=+SVN+CleanUp#0212e831fdf6fa8b – 2010-07-05 10:01:48

1

有點kludge,但你可以創建一個項目,按需運行,並執行svn清理?

我知道你可以在CruiseControl的Java版本中,所以我假設你可以做同樣的w/CC.NET。

+0

我想避免這個解決方案,因爲當項目數量增加時,它的規模很小。 – mbp 2009-01-13 12:46:32

0

您應該可以在項目配置中使用發佈者任務。

Project Configuration Block有一個發佈者任務,每個構建後都會執行該任務。

使用executable task,您可以將當前的集成狀態作爲環境變量傳遞,這將允許您使用簡單的腳本或命令來決定是否執行svn清理。

對於例如,你需要的是:
如果%CCNetIntegrationStatus%==「異常」清理命令

免責聲明:我只真正與CC發揮各地,這是從文檔,而不是經驗。