5

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

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

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

4

4 回答 4

3

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

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

于 2009-05-07T09:32:45.800 回答
3

svnversion 仍然可用,并记录在 1.5

svnversion 是一个用于总结工作副本的修订混合的程序。生成的修订号或修订范围被写入标准输出。

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

于 2009-05-07T12:25:34.967 回答
2

我的 2 美分:

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

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

不幸的是,Subversion 和 Ant 之间没有很好的集成。最好的SVNAnt更适合使用命令行 svn.exe 并且给我们运行带来了相当大的麻烦。

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

就个人而言,我看不出创建变量有什么难的地方,比如说,$GlobalRev$你会在每个文件中插入,就像你用$Id$or做的那样$Rev$

于 2009-06-10T14:15:32.933 回答
1

我理解上面的评论。但似乎 globalrev 在一种情况下可能很有用......

当您希望在所有正在运行的可执行文件中拥有最后一个构建的版本时。

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

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

问候

于 2009-07-10T22:32:36.277 回答