在 WinCvs 中获取标记文件的修订号

Get revision number of a tagged file in WinCvs

这似乎应该如此简单,但我找不到任何似乎有效的解决方案...

我需要一个 CVS 命令,它给出了你应用到文件的标签的名称,它会给你修订号。


CVS 树结构:

(filename)
    |
    +--> 1.1-----(branch)
          |         |
          |      1.1.1.1---(tag1)
          |         |
          |      1.1.1.2---(tag2)
          |         |
          |      1.1.1.3---(tag3)
          |         |
          |         :
         1.2
          |
          |
          :

例如:使用 CVS 命令,给定标签名称 "tag2",我怎样才能让 CVS 给我修订号“1.1.1.2”?


我能找到的最接近的东西是使用带有 -Q 标志的 log 命令,但这仍然给我提供了比我需要的更多的信息。

例如:cvs -Q log -h filename

将标记名传递给 log 命令似乎没有效果。


CVS 版本信息:


我目前的解决方案是使用 perl 脚本来解析 log 命令的输出,但必须有更简单的方法...

将标签名称(带有 -r 选项)传递给 log 命令确实有效果,只是不是特别有用,它的效果被“-h”隐藏了。

通常获取 VERSION 文件修订号的最简单方法(通常用例)是在其中包含一个关键字;即:

# Thu 21 May 08:40:59 BST 2015
THISREV="$Revision$"

注意:要获取存储库版本号,必须在每次 提交存储库时提交此 VERSION 文件。

如果您需要对特定文件进行修订,那么您基本上会退回到日志的 "symbolic names" 部分编写脚本。所以对于 r-1-0-0 你这样做:

cvs -Q log -h VERSION | awk '/^\tr-1-0-0:/ {print $NF;}'

git describe 命令没有直接等效项。