2008-09-18 86 views
7

我們對CI使用CruiseControl.Net/NAnt/Subversion堆棧。爲每個構建做一次全新的檢查太費時,所以目前我們只是對工作副本進行更新。但是,這可能會導致孤立的文件在源代碼管理中被刪除後可能會保留在工作副本中。我們試圖使用NAnt刪除任務只是爲了在更新之前刪除所有代碼源文件,但這可能會破壞工作副本。有沒有人知道一個快速的方式來運行一個乾淨的和最新的工作副本的構建? 編輯:我們在SVN 1.3.2持續集成的清潔版本

回答

5

如果你只是'更新',SVN將刪除源控件中刪除的所有文件。但是,構建過程中創建的文件可能仍然存在,並可能會干擾新構建。我不確定SVN是否有命令刪除它們,但我想你可以用一個小腳本來做到這一點,SVN絕對可以告訴你哪些文件在源代碼控制下,哪些不是。

1

如果你的工作副本中有遺留的文件完成svn更新,那麼你的Subversion版本中有一個錯誤。

1

您可能會每天完成一次構建,並保持原樣進行構建。另外,對於部署構建,始終使用乾淨的完整構建可能是一個好主意。

1

我能想到的唯一方法是在構建服務器上有兩個副本。首先你在第一個位置更新。您刪除第二個位置。先複製到第二個,然後在第二個位置構建。這樣你總是從一個乾淨的構建開始。

你可能想看看爲什麼你的結賬需要這麼長時間。我已經使用了相同的buildserver堆棧,從來沒有遇到過問題。 Subversion通常比構建本身花費更少的時間。

3

我們在CC實施方面遇到類似問題。

我們的解決方案...我們已經制作了一個3:00 AM的夜間構建,除了基本單元測試之外,還執行了更長時間的運行集成測試。我們只是決定讓這個3:00 AM在一棵新鮮的樹上建立一個完全乾淨的構建。因爲這是半夜,所以很少影響任何人。所有其他「正常」簽入運行增量構建。