【问题标题】:Creating a file with build number and branch name in SVN在 SVN 中创建具有内部版本号和分支名称的文件
【发布时间】:2009-07-01 14:07:35
【问题描述】:

目前我工作的地方没有大量的部署控制。虽然有一个长期计划来创建一个处理部署的构建脚本,但目前我们只是发布我们的解决方案,然后将它们复制到服务器。

如果有一个包含修订号和分支名称的文本文件或类似文件来作为当前在实时系统上运行的版本的日志,将会非常有用。

是否可以使用 SVN 钩子或 Visual Studio 中的简单后期构建脚本来做到这一点?

【问题讨论】:

    标签: svn deployment build-automation


    【解决方案1】:

    这里是我如何做到这一点的完整细分

    在您网站的根目录中创建一个名为 Version.txt 的空白文本文档。

    在您的网站根目录中创建第二个名为 Version.tmpl 的文本文档,其中包含以下内容

    Revision:   $WCREV$
    Repository: $WCURL$
    Modified:   $WCMODS?Yes:No$
    Built On:   $WCNOW$
    

    右键单击您的网站项目并选择属性。然后转到构建事件选项卡。

    将以下内容粘贴到您的构建后事件中:

    cd $(ProjectDir)
    "%ProgramFiles%\TortoiseSVN\bin\SubWCRev.exe" ..\. Version.tmpl Version.txt
    

    这将使用 Version.tmpl 作为模板,使用有关工作副本的一些详细信息来更新 Version.txt 文件。 Version.txt 现在包含在您的网站中这一事实意味着,每次部署网站时,Version.txt 也会被部署,并且如果您需要将代码库恢复到已部署的版本,它将包含有用的信息。

    【讨论】:

      【解决方案2】:

      svnversion 是检查工作副本当前版本的工具。

      【讨论】:

        【解决方案3】:

        在 Windows 上,您有 Subwcrev

        【讨论】:

        • 谢谢。您能否提供一些更完整的代码来说明如何实现这一点?
        【解决方案4】:

        您也许可以使用构建脚本来完成。查看存储库根目录中的 .svn\entries 文件。它应该在文件的早期包含修订号(第 5 行左右)

        【讨论】:

          【解决方案5】:

          您可以使用此代码从 vb 获取信息。我使用此版本的重写版本在应用启动时查找此信息。

          http://www.codeproject.com/KB/architecture/svn_visual_studio.aspx

          【讨论】:

            【解决方案6】:

            我使用 ant 作为构建工具,所以我有一个 ant 目标,它将 svnversion 的输出存储在 svn-version 文件中。该目标是所有主要入口点的依赖项,所以每次我运行 ant 时,svn-version 都会更新。我的打包操作包括所有可交付的 tar 和 zip 文件中的 svn-version。所以我总是可以在 svn-version 中查找已安装的代码版本。

            无论您使用什么构建工具,您都应该能够做到这一点。如果来自 svnversion 的数据不足,您可能还需要将 svn info 的输出添加到文件中。

            【讨论】:

              【解决方案7】:

              我也使用 Ant 并开发了一个 special Task,它能够从本地存储库(如果代码已签出)或远程 Subversion 服务器(如果代码已导出)检索 Subversion 信息并生成它们可通过常规 Ant 属性获得。

              使用 Ant 替换机制(例如,在 Copy 任务中),您可以将这些值放置在您认为合适的任何位置。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2017-12-03
                • 1970-01-01
                • 2015-09-09
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2016-06-28
                相关资源
                最近更新 更多