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

标签 version-control branch versioning cvs 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”?

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

例如:cvs -Q log -h filename
将标记名传递给 log命令似乎没有效果。

CVS 版本信息:

enter image description here

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

最佳答案

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

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

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

注意:要获取存储库版本号,此 VERSION文件必须提交 当你对 repo 做出 promise 时。

如果您需要对特定文件进行修订,那么您基本上是从日志的“符号名称”部分重新编写脚本。所以对于 r-1-0-0你做这个:
cvs -Q log -h VERSION | awk '/^\tr-1-0-0:/ {print $NF;}'

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

关于version-control - 在 WinCvs 中获取标记文件的修订号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30225099/

相关文章:

ruby - 有没有办法避免在 'elsif' 分支中多次调用函数?

特定分支当前修订版的 Mercurial 子存​​储库

branch - 有没有办法配置 Ivy 以从分支获取依赖项,而无需编辑每个相关依赖项?

android - Android:仅在我更新市场上的应用程序时如何执行一些代码?

netbeans - 如何从 Mercurial 存储库获取修订号并将其粘贴到 NetBeans 资源包?

git - promise 直接在 Git Flow 中开发分支?

git - 我应该使用 Git 分支来存储不相关的代码吗?

.net - .NET 项目版本控制中第三方 Dll 的位置

version-control - 如何使用 oslc 获取爵士乐组件的历史记录

go - 转到-“版本”包及其工作方式?