【问题标题】:How do I use global revision number keyword with TortoiseSVN?如何在 TortoiseSVN 中使用全局修订号关键字?
【发布时间】:2009-05-07 09:21:33
【问题描述】:

在 CVS 中,您可以在代码中使用在检出文件时展开的关键字。我想用 $GlobalRev$ 关键字显示 CVS 的全局修订。

Subversion 有$Rev$ 命令,但它只显示文件被更改的最新版本。我知道有一个svnversion 命令,目前在1.51.6 nightly 中没有任何文档。

我很想知道如何用 TortoiseSVN 做到这一点。

【问题讨论】:

    标签: svn tortoisesvn version-control-keywords


    【解决方案1】:

    svnversion 仍然可用,并且是documented in 1.5

    svnversion 是一个程序 总结a的修订组合 工作副本。结果修订 编号或修订范围,写入 到标准输出。

    在您签出后使用它来获取您的工作副本的修订版,KeywordExpansion 的文档描述了它的设计使用方式。

    【讨论】:

      【解决方案2】:

      我认为没有与 CVS 中相同的选项,至少我在需要时找不到。

      相反,我使用 TortoiseSVN 的 SubWCRev.exe 将包含 $WCREV$ 字符串的模板文件转换为具有当前修订号的模板文件。

      【讨论】:

        【解决方案3】:

        我的 2 美分:

        我目前正在开发一个基于 Web 的 Java 应用程序。我们有一个构建服务器 (Hudson),它没有可以访问命令行颠覆可执行文件;相反,它附带了一个纯 Java Subversion 库,以便能够在拉取源代码构建应用程序之前访问存储库。

        现在我们需要在构建过程中在应用主页中包含全局修订号(如果您查看屏幕的右下角,这与 StackOverflow 非常相似)。

        不幸的是,Subversion 和 Ant 之间没有很好的集成。最好的SVNAnt,更针对使用命令行svn.exe,运行起来相当麻烦。

        最后,我花了两个小时使用SVNKit,这是一个用于 Subversion 访问的纯 Java 库,以调整我们的构建脚本以查看修订号并将其插入到我们的文件中。

        就我个人而言,我看不出创建一个变量有什么难的地方,比如 $GlobalRev$ 以至于你要插入到每个文件中,就像你对 $Id$$Rev$ 所做的那样

        【讨论】:

        • 如果您只更改一个文件,您真的希望所有其他文件也都更改吗?即使该修复仅修复了某些评论中的错字?太疯狂了!我永远不会想要我的 svn 中的那个功能......
        • 我只希望在提交后更改几个文件,这些是我放置 $GlobalRev$ 关键字的文件,并且(但不存在)svn:global_rev 属性已放。能够查看正在运行的应用程序并判断它是从哪个确切 SVN 版本编译而来的,这是无价的。
        【解决方案4】:

        我理解上述言论。但似乎 globalrev 在一种情况下可能会有用...

        当您希望在所有正在运行的可执行文件中拥有上次构建的版本时。

        对于示例,如果您在 versionning.propriety 文件中放入一个带有应用程序标题的属性,您可以添加版本号。

        因此,当测试人员或用户提出问题时,他们可以将数字与版本进行比较,而不是查看功能是否存在。这个变量 $GlobalRev$ 将在一个小上下文中使用,但可能很有用。

        问候

        【讨论】:

          猜你喜欢
          • 2012-11-22
          • 2011-06-09
          • 2014-02-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-23
          相关资源
          最近更新 更多