为什么网站会显示SVN版本,有哪些优势?

时间:2009-05-27 04:18:13

标签: svn version-control versioning

到目前为止我还没有使用过SVN。为什么网站(例如Stack Overflow)会在底部显示SVN版本?它是什么版本的?在公共场合展示它有什么好处?

alt text http://shobankr.googlepages.com/so.jpg

5 个答案:

答案 0 :(得分:5)

因此,当用户抱怨支持人员可以问他是什么版本。可能会发生用户发现问题,而不是更新网站软件并且他的投诉不再相关,因此开发人员会浪费时间尝试重现。

该号码是SVN修订号。它从零开始并自动递增,每个源代码在SVN存储库的生命周期中添加/更新。知道这个数字很容易让完整的源代码完全处于相应的状态 - 存储库有一个方法。

答案 1 :(得分:3)

在传统软件上,您有版本号,如1.0,1.1,2.0等,主要用于支持和营销目的。

在网站上,通常没有版本号的概念,因为它们通常比“传统”软件更频繁地更改。此外,有时只有“架构”的变化,如“在这里进行一点优化,在那里进行一点清理” - 在“传统”软件中也会发生变化,但通常不保证发布新版本(并增加版本)从1.0到1.0.1)

因此,StackOverflow不是每两天增加一些任意数字,而是决定使用源代码控制中的版本号(即Subversion,但每个源代码管理系统都有一些数字来识别签名)。

答案 2 :(得分:1)

它提供了一个简单明确的版本号,无需任意决定任何给定代码推送的版本。

答案 3 :(得分:1)

发布修订号的另一个原因是帮助您进行测试。如果您正在追踪错误或测试候选发布版,那么显示修订版号可以防止您对当前正在测试的版本感到困惑。

答案 4 :(得分:1)

如果您使用的是CruiseControl.Net,则可以使用以下代码捕获.state文件的SVN修订版: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;
}

(在这种情况下,我将其放入缓存中以便于访问和提高性能。)