2011-07-17 53 views
3

這是一個基於Web的項目,我的服務器端應用程序代碼和客戶端JS/HJTML受版本控制。比方說,我發佈了1.0版本,並使用1.0版本從trunk中創建了一個新分支。我運行我的構建工具,吐出所有的壓縮和組合文件。在我的目錄結構中,它會生成一個包含壓縮/構建文件的構建目錄。我的構建應該承諾嗎?

我應該致力於構建目錄,所以我每次構建/發佈的副本,而不必如果我需要另一個副本重新構建它(另一臺服務器說..)?

+2

Hi Brook,歡迎來到Stack Overflow!你提出了很多問題。這個網站不僅是回答你的問題,而且也是關於如何以一種能夠幫助他人的形式來完成它。你爲什麼不試着把注意力集中在這裏的一個思路上,並在必要時詢問其他單獨的問題(你可以超鏈接)?有一個小的「編輯」鏈接,您可以在上面使用:-) –

回答

1

在版本控制下保持構建輸出通常是一個好主意。它允許輸出存儲在一個反映輸入的結構中。這使得清楚哪個輸入產生了哪個輸出。它還可以輕鬆訪問任何版本的輸出而無需重建。

作爲一個選項駁回它的原因主要是與存儲庫有關。原因包括存儲庫太小,訪問速度太慢,或者只是不喜歡在存儲庫中輸出文件等。

但是,一般來說,做這件事本身並沒有壞處。而且在很多情況下它很有價值。

3

雖然這是有點主觀的答案,這是罕見的,我相信,存儲建立你的版本控制系統二進制文件。這就是標籤的目的。

在你發佈的時候,你更應被創建,包括構建腳本的完整代碼狀態的標籤,標籤與當前版本號。在任何時候需要一個早期版本的副本,這是一個簡單的問題,檢查標記的版本和構建它。該標記包含在該階段完全複製構建所需的所有信息和代碼狀態。

如果您想保存構建別的地方,那是另一回事,是真的取決於你。最典型的是他們不屬於版本控制。

1

我會說「不」,源頭控制是不是編譯輸出的地方。源代碼管理是用來管理源代碼的,目的是爲代碼存儲,編譯和提供協作工具。

理想情況下,構建的正確位置是構建服務器。這通常意味着你不只是捕獲編譯輸出(假設你保存了構建後的工件),還可以捕獲重要的信息,比如構建參數,這些只是通過對構建輸出進行版本化而隱含得到的除非你的構建腳本也在那裏)。

採取The 10 commandments of good source control management看看8號。當然這有點主觀(如一些評論所示),但個人而言,我沒有版本編譯輸出。也許你需要問的問題是「你爲什麼」要對它進行版本化,以及如果不這樣做,你會錯過什麼。