gpt4 book ai didi

CVS命令获取文件的当前修订号

转载 作者:行者123 更新时间:2023-12-04 05:05:04 24 4
gpt4 key购买 nike

我需要一种简单的方法来使用 cvs 获取文件的修订版本。我可以使用 CVS/Entries 获得它文件。这是不安全的,我认为必须有另一种方式。 cvs log打印的东西比我需要的多。如何使用 cvs 命令仅获取某些文件的修订号。

最佳答案

cvs log -h只显示标题信息。要获得版本,可以很容易地通过 sed、awk 或 Perl 对其进行过滤。

这为您提供了存储库中的版本。如果你想要 checkout 文件的版本,你可以使用 ident (RCS 的一部分)——但前提是您在文件中包含了正确的关键字。 (这不适用于二进制文件。)

例如,如果您在检入文件之前向文件中添加如下内容:

# $Id:$
# $Source:$

然后 ident foo.txt将打印如下内容:
foo.txt:
$Id: foo.txt,v 1.3 2011/10/17 22:49:45 kst Exp $
$Source: /path/to/repo/sandbox/foo.txt,v $

您可以使用许多其他关键字。见 Keyword substitution有关详细信息,请参阅 CVS 手册的部分。

这可能会以各种方式出错;例如,如果您在 check out 文件后对其进行编辑,则扩展的关键字不一定反射(reflect)任何有意义的内容。您可以使用 cvs diff确定文件是否在 check out 后被修改。

正如我提到的,如果您尝试使用二进制文件执行此操作,它可能会损坏文件(这就是为什么如果您告诉 CVS 文件是二进制文件,它不会进行关键字替换的原因)。
ident command 是 RCS 的一部分,而不是 CVS,因此您必须在系统上安装 RCS,如果它尚未安装。 (拥有 cvs ident 命令是有意义的;我不确定为什么它不存在。)

更“现代”的源代码控制系统往往不提供这种功能。

关于CVS命令获取文件的当前修订号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15618098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com