2010-04-16 55 views
3

我有麻煩的定義,儘管簡單要求我的自動化構建過程:你的構建和發佈步驟是什麼?何時增加版本號?

  1. 每次構建應該有一個唯一的版本號。
  2. 每個標籤的版本應該是可重複的

我有什麼:

  • A C++,紅帽企業Linux 5.x的,Subversion的開發環境。
  • 生成計算機(實際上是一個虛擬機)
  • 與#定義爲主要,次要,和buildnumber一個version.h文件,。
  • 用於遞增version.h構建編號的腳本。
  • 一個rpmbuild規範文件,用於導出標記的Subversion源代碼,構建並生成rpm安裝程序包。

問題:

  • 假設每個項目的多個開發人員,當應的內部版本號遞增和version.h文件,被登記?生成機器?某種Subversion鉤子?預構建還是後構建?

預先感謝那些願意花時間分享構建過程的經驗的人。

-Ed Linux新手。前Windows C++/.NET開發人員。

回答

1

爲什麼不修改您的構建過程,以便從存儲庫獲取最新版本號並將其用作內部版本號?

假設svn包含了構建產品的所有元素,它應該爲您提供每個潛在不同構建的唯一編號,並且可以很容易地匹配代碼庫的狀態建造。如果有其他元素可能隨時間而變化,則可以添加與修訂號連接的另一個項目 - 可能是日期/時間值。

您永遠不用擔心手動增加它,因爲每次開發人員提交時,他們都會自動增加修訂號。

+0

我喜歡這個想法以及安德魯的約會想法。 我不清楚,Subversion版本號是否應用於每次提交文件時遞增的文件? 或者它是一個項目的事情;每次增加的項目修訂號*任何*文件被檢入? 謝謝大家的回覆, -Ed – 2010-04-16 19:04:36

+0

Subversion修訂號#對整個存儲庫是全局的 - *任何*提交到該存儲庫,無論它影響什麼文件,都會增加修訂號。 – Amber 2010-04-17 18:59:56

+0

Svn info顯示同一回購商的不同地點的不同版本號? [esutton @本地LRADDS_BnS] $ PWD /家庭/ esutton /項目/ LRADDS_BnS [esutton @本地LRADDS_BnS] $ SVN信息 網址:https://10.0.0.134:8443/svn/LRADDS_BnS/trunk 庫的根:https://10.0.0.134:8443/svn/LRADDS_BnS 修訂:665 上次更改修訂:665 最後更改日期:4月13日 [esutton @本地LRADDS_BnS] $ CD上的doc [esutton @本地DOC] $ svn info URL:https://10.0.0.134:8443/svn/LRADDS_BnS/trunk/doc 存儲庫根目錄:https://10.0.0.134:8443/svn/LRADDS_BnS 修訂版:703 上次更改修訂號:702 :Apr 19 – 2010-04-19 18:35:30

1

不要直接在您的文件中存儲內部版本號,請使用Subversion版本號(或其他一些單調遞增的值,如日期/時間)作爲構建標識符。在過去,我使用的值爲date -u +"%Y%m%d%H%M%S",因爲我們使用的是CVS而不是SVN。

1

我們有多達40多位開發人員的團隊將代碼添加到我們的產品中。每個開發人員將其變更提交到產品的中央位置。這形成了代碼提交的有序列表。然後,腳本根據最近發佈的配置以及本輪中以前提交的任何更改,將每個提交進行整合,並將其整合到測試版本中。在編寫每個代碼提交之後運行單元測試,並且還會運行本輪添加的任何驗收測試。在每天結束時,針對不斷髮展的版本運行單元測試和迴歸測試。

每週兩次提交的代碼更改列表已包裝完畢,併成爲產品的新發布配置,並且代碼庫已更新。

相關問題