2009-05-27 52 views
9

我到目前爲止還沒有使用過SVN。爲什麼網站(例如Stack Overflow)會在底部顯示SVN版本?它是什麼版本?公開展示它的優點是什麼?爲什麼網站會顯示SVN版本,並且有哪些優勢?

​​

+5

我已經編輯了問題的希望,這將是令人滿意的那些下意識的反應是關閉任何提到堆棧溢出的東西。該問題不屬於UserVoice,這是針對錯誤報告和功能請求的。這是一個完全有效的問題,不需要特定於SO,並且不需要我花費大量的想象力或努力就可以對其進行相應的編輯。 – 2009-05-27 04:55:53

+0

沒問題Rob ;-)謝謝 – Shoban 2009-05-27 05:02:39

+0

@ian Quingley,這個問題是什麼? :)你在哪裏投票? – Shoban 2010-02-11 14:10:57

回答

5

因此,當用戶抱怨支持人員可以問他是什麼版本。用戶看到問題可能會發生,比網站軟件更新和他的抱怨不再相關,因此開發人員會浪費時間來重現。

該編號是SVN修訂版編號。它從零開始,每增加一個源代碼就會自動增加/更新SVN存儲庫的整個生命週期。知道這個數字很容易就能完整地獲得完整的源代碼,相應的狀態 - 存儲庫有一個方法。

1

它提供了一個簡單,明確的版本號,而無需任意決定任何給定的代碼推送將是什麼版本。

3

在傳統軟件上,您擁有1.0,1.1,2.0等版本號,主要用於支持和營銷目的。

在網站上,通常沒有版本號的概念,因爲它們通常比「傳統」軟件更經常變化。此外,有時候只是「架構」的變化,比如「在這裏稍微優化,稍微清理一下」 - 也發生在「傳統」軟件中的變化,但通常不會保證發佈新版本(並且增加版本從1.0到1.0.1)

因此,不是每兩天增加一些任意數字,而是決定使用源代碼管理中的版本號(即Subversion,但每個源代碼管理系統都有一些數字來標識簽入)。

1

發佈您的修訂版號的另一個原因是幫助您進行測試。如果您正在追蹤一個錯誤或測試候選版本,那麼顯示版本號可以避免您對目前正在測試的版本感到困惑。

1

如果您使用的是CruiseControl.Net,則可以使用以下代碼將SVN修訂版捕獲到.state文件中:http://code.google.com/p/svnrevisionlabeller/

然後查詢狀態文件中的XML並將其顯示在您想要的位置。

XDocument stateFileRoot = XDocument.Load("path-to-state-file"); 

var q = (from label in stateFileRoot.Descendants("Label") 
     select (string)label).SingleOrDefault(); 

if (q != null) 
{ 
    result = q.ToString().Substring(0, q.LastIndexOf(".")); // lop off last digit 
    HttpContext.Current.Application["BuildLabel"] = result; 
} 

(在這種情況下,我把它放到緩存中,方便訪問和性能。)

相關問題