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

Version control 获取WinCvs中标记文件的修订号,version-control,branch,versioning,cvs,wincvs,Version Control,Branch,Versioning,Cvs,Wincvs,这看起来应该很简单,但我找不到任何可行的解决方案 我需要一个CVS命令,该命令提供了应用于文件的标记的名称,它将为您提供修订号 CVS树结构: (filename) | +--> 1.1-----(branch) | | | 1.1.1.1---(tag1) | | | 1.1.1.2---(tag2) |

这看起来应该很简单,但我找不到任何可行的解决方案

我需要一个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文件名

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


CVS版本信息:


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

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

通常,获取
版本
文件的修订号的最简单方法是在其中包含关键字;即:

# Thu 21 May 08:40:59 BST 2015
THISREV="$Revision$"
注意:要获取存储库版本号,必须在每次提交回购时提交此
版本
文件

如果您需要对特定文件进行修订,那么您基本上可以从日志的“符号名称”部分使用脚本。因此,对于
r-1-0-0
您可以这样做:

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

没有与git descripe
命令直接等效的命令。

不幸的是,我不是创建要进入存储库的文件的人,因此我无法强制在每个文件中添加版本行。现在我正在使用一个Perl脚本来解析log命令输出,但我真的希望有一个更快更简单的方法。虽然你没有完全回答我的问题,但你确实提出了一个解决方案,所以我将奖金授予你。现在我将坚持使用Perl脚本,因为你的建议对我来说是不可能的。我接受了这个答案,因为awk解决方案在Linux上确实适用于我,而且很可能不会得到更多的响应。不过,我想要一个在windows上工作的解决方案。作为普通git工具的标准部分安装的
git bash
与所有
msys
编译一样,都附带了
gawk
编译。多年来,
mawk.exe
程序一直作为本机win32程序提供。当然还有
cygwin
之类的东西,对于“仅仅是一个awk命令”来说,这将是严重的过度(和复杂的)。