2012-01-10 66 views

回答

4

用途是區分不同的版本。

如果某些版本與某些版本號相同,您希望如何引用該版本?

你正在做的建立有兩個原因:

代碼
  • 你想要做的事與構建
    1. 已經有變化(我假設,測試所做的更改)

    所以你需要記錄變化和結果,如果有問題,你需要參考正確的版本。如果你想知道發生了什麼變化,那麼你就更容易追蹤問題。

  • +0

    爲什麼我們需要區分每一天和每一天的構建。增量的數量會更多。不是嗎?如果有許多版本號,如何使用版本號跟蹤特定的日期版本? – SamJ 2012-01-10 09:59:45

    +0

    由於兩個原因,代碼中發生了變化,並且您希望對構建做些什麼(我假設,測試這些變化),所以您正在進行構建。所以你需要記錄變化和結果,如果有問題,你需要參考正確的版本。如果你想知道發生了什麼變化,那麼你就更容易追蹤問題。 – stema 2012-01-10 10:10:24

    +1

    @stema我發現你最近的評論比你原來的回答更徹底的答案;-)你應該考慮把它加到它更顯眼的地方。 – 2012-01-10 12:04:11

    0

    我更喜歡使用與更改和日期無關的編號方案。 我通常使用具有編號變更集(Subversion-tfs)概念的SCM。

    因此,構建和scm之間的鏈接得以維護,您不必記錄正在運行的構建編號,並且標籤已經爲您完成。 如果我在變更集45678中檢查,版本是1.2.45678(其中主要次要版本是1.2)。

    我不會打擾到將內部版本號與當天相關聯。它不是最好的方法。

    +1

    「如果我在變更集45678中檢入版本是1.2.45678(其中您的主要次要版本是1.2)」。 - 這是錯誤的設計。我們使用相同的內部編號,但是我們更改了它,因爲內部編號是16位編號。如果您達到超過65535個變更集,您的構建將失敗。如果你正在從事這個龐大的項目,或者你的TFS包含很多項目,你很快就會達到這個數字。 – Ludwo 2012-01-10 11:03:17

    +0

    請參閱此問題的答案:http://stackoverflow.com/questions/6121071/versioning-an-assembly-info-past-the-uint16-barrier – 2012-01-10 14:51:59

    +0

    是的,它可以通過使用修訂版來解決,但我們正在使用修改日期戳(mmdd格式) – Ludwo 2012-01-10 15:08:47

    0

    我們使用的是major.minor.xyyyy.mmdd構建版本格式,其中x是保留的,yyyy是計數器每小時遞增一次。此格式僅用於部署構建,並且每天執行2次。應該設置計數器增量值,以確保獨特的版本和主版本的生命週期(對於yyyy = 9999 = 9999hours)。例如,ClickOnce需要唯一的構建版本。當主/次版本更改(或新版本分支)時,計數器設置爲零。

    對於正常的構建(不用於部署腳本),我們使用的是major.minor.0.0構建版本。這對於增量構建是必需的,因爲如果您更改構建版本,您的項目將被重建。對於大型項目來說這不是個好主意(我的情況是500+),因爲重建可能需要很長時間。

    0

    我會推薦版本格式爲major.minor.hotfix.build,這爲我們希望支持修補程序版本時在未來的主版本上提供各種子構建提供了靈活性。

    「構建」可以是遞增的每一個增量構建鑑定的被測試團隊建立,如果他們在全球範圍內爲每一個測試團隊希望最新版本,以驗證新的修補程序展開。否則,我們可以擁有活動的分支變更列表,以便我們仍然可以輕鬆識別構建代碼的哪部分。