通常,我们针对任何错误的修补程序/补丁涉及多个文件的更改,我们将一次性提交所有这些文件。
在SVN中,对于每次提交(可能涉及多个文件),它会将整个存储库的修订号增加一个。因此,我们可以轻松链接一次提交中的所有多个文件。
现在CVS中相同案例的难点在于它将单独增加所有文件的修订号。假设提交涉及以下文件:
file1.c //作为此commit..1.5.10.2的一部分分配的修订版 file2.c //作为此commit..1.41.10.1
的一部分分配的修订并且为此提交提供的评论是“First Bug Fix”。
现在,将所有文件作为此提交的一部分签入的唯一方法是在所有cvs日志中搜索注释“First Bug Fix”,并希望它只返回上面提到的两个文件修订版。
请分享您的观点,了解CVS中是否有更好的方法来跟踪在单次提交中签入的所有文件,而不是在作为提交的一部分给出的评论中继。
答案 0 :(得分:11)
我认为CVSps可能会做你想要的。
“CVSps是一个从CVS存储库生成'补丁集'信息的程序。在这种情况下,补丁集被定义为对文件集合进行的一组更改,并且所有文件都同时提交(使用单个' cvs commit'command)。这些信息对于了解cvs项目演变的全局非常有价值。虽然cvs跟踪修订信息,但通常很难看到哪些更改是“原子地”提交到存储库的。“
这个cvsps依赖于cvs客户端。确保你有适当版本的cvs支持rlog命令(1.1.1)
答案 1 :(得分:3)
CVS没有对“交易”的固有支持。
你需要一些额外的胶水才能做到这一点。幸运的是,这一切都已经完成,并且有一个非常好的扩展名为“cvszilla”。
主页在这里:
http://www.nyetwork.org/wiki/CVSZilla
这也与CVSweb有关,这是通过基于Web的GUI浏览CVS模块的好方法。
答案 2 :(得分:1)
也许ANT CvsChangeLog任务是另一种选择。见http://ant.apache.org/manual/Tasks/changelog.html。它提供签入消息的日期和时间。您可以使用XSLT生成漂亮的报告 - 尝试ANT手册页底部的示例。
我知道答案已经很晚了,但也许其他用户会像我一样(搜索)遇到这种情况并欣赏ANT集成。
答案 3 :(得分:0)
好的,我刚刚安装了cvsps并从顶层运行它。这是输出的示例...这是我模块上几百个补丁集之一。请注意,确实这适用于不同的目录树。
---------------------
PatchSet 221
Date: 2009/04/22 22:09:37
Author: jlove-ext
Branch: HEAD
Tag: LCA_v1_0_0_0_v6
Log:
Bug: 45562
Check the length of strings in messages. Namely:
* Logical server IDs cannot be more than 18 characters (forcing a
TCSE protocol requirement).
* Overall 'sid' (filter) search string length cannot be more than
500 (this is actually more than the technical maximum messages are
allowed, but is close).
Alarm messages and are now not going to crash either as the alarm text
is shortened if necessary by the LCA.
Members:
catalogue/extractCmnAlarms.pl:1.2->1.3
programs/ldapControlAgent/LcaCommon.h:1.18->1.19
programs/ldapControlAgent/LcaUtils.cc:1.20->1.21
programs/ldapControlAgent/LcaUtils.h:1.6->1.7
programs/ldapControlAgent/LdapSession.cc:1.61->1.62
tests/cts-45562.txt:INITIAL->1.1
所以,这可能确实做你想要的。好的,Joakim。但是,正如所提到的,CVSzilla所做的远不止这些:
如果你想要的只是补丁集信息,请使用cvsps。如果你想在很长一段时间内在大型项目上使用CVS并且正在考虑使用bugzilla进行错误跟踪,那么我建议你研究一下CVSzilla。
答案 4 :(得分:0)