生成diff文件
Coco支持在
CoverageBrowser和
cmreport中使用--patch
选项进行补丁文件分析(参见
cmreport – 代码覆盖率报告生成)。为此,需要以统一格式的diff
文件。它由diff
工具和大多数版本控制系统提供。
以下示例在UNIX® shell和Microsoft® Windows命令窗口中都有效。
比较目录
如果源代码的两个版本位于文件系统的不同目录中,可以使用diff
命令。这是标准的UNIX文件比较程序,其功能命名据此而来。
可以通过设置-u
标志来设置统一格式,并将结果重定向到文件,使命令行看起来如下
$ diff -u project/version_1 project/version_2 > project.diff
然后比较目录project/version_1
和project/version_2
,并将输出写入文件project.diff
。在这个两个目录中,project/version_1
被视为更早版本。
版本控制系统
在版本控制系统中,使用diff
功能比较源代码树的两个修订版本。
对于大多数较新的版本控制系统,存在像Tortoise SVN这样的图形界面包装器,尤其是对于Windows。如果底层版本控制系统默认支持统一差异,那么图形界面包装器也应该如此。
- Git:使用Git指定两个修订版本并重定向输出到文件。Git默认使用统一格式。使用以下命令比较两个修订版本:
$ git diff
<rev1> <rev2> > project.diff此命令默认创建整个源代码树的差异。
有关Git中指定修订版本的方法列表,请参阅gitrevisions。
- Mercurial:分布式版本控制系统
Mercurial默认以统一格式生成差分文件。比较Mercury变更集<rev1>和<rev2>$ hg diff -r
<rev1>-r
<rev2> > project.diff - Subversion:版本控制系统 Subversion默认生成统一差异。要生成差异,请编写:
$ svn diff -r
<rev1>-r
<rev2> > project.diff其中<rev1>和<rev2>可以是标签或修订号。
- CVS:此处描述的版本控制系统中最古老的是并发版本系统。它默认不使用统一格式。使用它比较两个修订需要编写以下命令:
$ cvs diff -u -N -r
<rev1>-r
<rev2> > project.diff标志
-u
打开统一差异,而-N
对于跟踪添加或删除文件的变化是必要的。由于CVS没有全局版本号,修订号<rev1>和<rev2>必须是标签或日期。然后命令会创建大量额外的控制台输出,但两个修订之间的差异仍将写入project.diff
。请注意,该命令仅列出当前目录及其子目录中的差异。
Coco v7.2.0©2024 The Qt Company Ltd.
Qt及其相应的标志是芬兰和/或其他国家的The Qt Company Ltd.的商标。所有其他商标都是其各自所有者的财产。