如何将软件版本链接到 tortoise svn 修订版

Posted

技术标签:

【中文标题】如何将软件版本链接到 tortoise svn 修订版【英文标题】:How to link software versions to tortoise svn revisions 【发布时间】:2013-07-16 19:18:04 【问题描述】:

我正在 Visual Studio 中开发一个 C# .net 应用程序,我使用 Tortoise SVN 进行版本控制。

我的问题是: 有没有办法可以链接我的主要项目的程序集版本,例如:

    [assembly: AssemblyVersion("2.2.3.4")]

到龟SVN中的修订号。

这样我就可以直接查看修订版 2.2.3.4 而不是查看例如。修订版 52(或任何等于版本 2.2.3.4 的修订版)。

当我尝试获取程序的特定版本时,这将使我更容易,因为我不必弄清楚什么 SVN 修订号等于我正在寻找的软件版本号。

谢谢

【问题讨论】:

您可以将版本的最后一个数字设置为修订号。所以 2.2.3.1463 将指向修订版 1463。但我不知道版本号的最大限制。在 NAnt 中有一个操作 AssemblyInfo.cs 的命令,对于拥有 NAnt 和构建服务器的情况非常方便...... 【参考方案1】:

为什么不用版本号来命名分支?

您可以使用tags 并用版本命名每个标签...但标签主要用于已签署的分支。

或者,您可以使用commit hook 将版本号附加到每个提交消息并搜索 TortoiseSVN 的日志,然后从那里查看。

【讨论】:

【参考方案2】:

Version.cs.tpl 文件添加到您的项目中,内容如下:

namespace Versioning

    public static class VersionInfo
    
        public const string Version = "2.2.3.$WCREV$";  
    

为您的项目添加预构建事件:

SubWCRev.exe "$(SolutionDir)\" "$(ProjectDir)Version.cs.tpl" "$(ProjectDir)Version.cs" -f

构建项目。 Version.cs 将在项目文件夹中创建,将其添加到项目中。现在您可以像这样修改您的 AssemplyInfo.cs:

[assembly: AssemblyVersion(Versioning.VersionInfo.Version)]

SubWCRev.exe 是 Tortoise 程序文件夹 (http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-subwcrev.html) 中的一个工具。它应该是可访问的(例如在 PATH 变量中设置)。现在,每次项目的修订版本发生变化时,都会在构建后反映在程序集的版本中。

似乎这也适用于您的帖子: Linking Tortoise SVN revision number to assembly version

【讨论】:

+1 这是一个很好的解决方案,唯一的问题是如果开发人员在签入之前没有构建或获取最新版本。 Resulted Version.cs 不应该被签入,它是生成的文件。当您构建时,您会获得带有当前结帐修订版本的组件,这很公平...... @Matthew:如果工作副本有混合修订版,SubWCVer 的 -m 选项会出错。我想这可以用来处理你提到的问题。

以上是关于如何将软件版本链接到 tortoise svn 修订版的主要内容,如果未能解决你的问题,请参考以下文章

Tortoise SVN使用方法,简易图解

Tortoise SVN 日志消息不更新

急求!!!!!!Tortoise svn中删除文件 怎么样恢复文件和记录

SVN外链

tortoise svn回滚常用命令

Tortoise svn 基础知识