Svn 如何在文件中显示最新版本?

Svn 如何在文件中显示最新版本?,svn,versioning,Svn,Versioning,我想知道在推送应用程序的实时新版本时,您如何处理显示版本修订号的问题 您可以在文件中使用$Rev$来获取最新版本,但只能在更新文件后使用 如果每次更改存储库/目录中的任何文件时都要更新一个文件中的字符串,该怎么办 有办法吗?你试过用钩子吗?它们只在服务器端工作,但可能会起作用。否则,如果关键字不适合您,我会调用脚本来更新修订版。自动更新文件,作为构建/部署版本的一部分。在我有理由这样做的一个项目上,我作弊了:当它启动时,它会自动调用svversion。最好的方法是为发行版创建一个构建脚本,该脚本

我想知道在推送应用程序的实时新版本时,您如何处理显示版本修订号的问题

您可以在文件中使用
$Rev$
来获取最新版本,但只能在更新文件后使用

如果每次更改存储库/目录中的任何文件时都要更新一个文件中的字符串,该怎么办


有办法吗?

你试过用钩子吗?它们只在服务器端工作,但可能会起作用。否则,如果关键字不适合您,我会调用脚本来更新修订版。

自动更新文件,作为构建/部署版本的一部分。

在我有理由这样做的一个项目上,我作弊了:当它启动时,它会自动调用
svversion

最好的方法是为发行版创建一个构建脚本,该脚本将使用
svversion
svn info
确定修订号,并将其插入到文件中。有一个脚本总是很有帮助的:

  • 将源的干净副本签出到空目录中
  • 使用
    svreversion
    或类似的方法来计算内部版本号
  • 将源代码编译为产品
  • 创建产品的存档(zip或tarball或其他内容)
  • 清理:删除除存档之外的所有内容
  • 然后,您有一个一步的过程来创建一个具有易于识别的版本的发行版。它还可以帮助您避免从您自己的工作副本中向某人提供生成,因为这些副本可能具有从未签入源代码管理的更改。

    如前所述,一种方法是在生成过程中更新修订版

    实现这一点的一种方法是,通过使用以下工具,从版本控制签入触发的自动生成过程中获取发布版本

    一个场景可能是使用subversion存储库上的post hook脚本触发自动构建。 这将导致buildbot更新为最近签入的版本。 您的构建脚本(例如Makefile)将使用“svnversion”(或“svn info”和grep)读取存储库版本,并在构建之前将其写入头文件


    成功构建后,自动将此文件签回存储库,并附上有关发布版本的适当注释。

    在OrtoiseSVN中有一个名为SubWCRev.exe的简单工具。它从path获取修订,并从您自己的模板创建文件。您可以将其用作预构建命令。

    如何在过程中自动更新文件?我不知道您的过程是什么样子。您可能有一个构建工具或脚本,可以在创建包之前或将文件复制到生产环境之前添加额外的步骤……当然,但它是有效的。如果您有更好的解决方案,请继续。;)