gpt4 book ai didi

cvs - 如何以编程方式获取 CVS 结账的最新提交日期

转载 作者:行者123 更新时间:2023-12-02 13:02:23 26 4
gpt4 key购买 nike

对于我正在使用 CVS 实现二分的脚本,我想弄清楚当前结帐的“时间戳”是什么。换句话说,如果我位于分支/标签上,我想知道提交到该分支/标签的最后一个时间戳。如果我在头上,我想知道头上的最后一个时间戳。

我知道这并不能 100% 保证,因为 cvs checkout 可以在不同的时间戳/修订/...处有不同的文件,但在大多数情况下正确的解决方案对我来说没问题。

我天真地以为

cvs log -N | grep ^date: | sort | tail -n 1 | cut -d\; -f1

本来打算这样做,但事实证明它会遍历所有分支/标签的整个提交历史记录。

最佳答案

分支上的 CVS 文件具有不同的时间戳,选择任何一个文件来获取该分支的最后时间信息的准确性几乎不值得。

但是,如果有一些文件经常更改,情况会更好。例如,在我的一个基地中,有一个 version.h 文件,该文件在每次版本转换(次要或主要)时更新。这可以用于当前版本的时间信息(同样不准确于分支中的所有文件,但它确实给出了底线)。

所以,如果您知道一个可以为您提供底线值的文件,

cvs log path/to/version.h -r branch/tag | grep ^date | sort | tail -1

将为您提供该文件的最后时间戳。

<小时/>

如果你可以像这样枚举整个库的文件集,

find /base/dir -type f | grep -v CVS > files.txt

然后,您可以为每个文件循环上面的 cvs 命令,

rm -f allFiles.txt
for f in $(<files.txt); do cvs log $f ...etc... tail -1 >> allFiles.txt
sort allFiles.txt | tail -1

排序的最后一行将为您提供最近提交的确切日期。
唉,你不会得到文件名(这也可以用更多的 fu 来完成)

关于cvs - 如何以编程方式获取 CVS 结账的最新提交日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1044651/

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