是否有一些方法来分析c++的mercurial变更集,以找出例如被修改的函数或类?
我想获得代码某些部分的修订数量的统计数据:方法,类,文件,文件夹等
不确定这在使用c++时有多好,但是Mercurial可以选择使用git格式的差异。git diff
和hg diff
都有一个选项来查看所做更改的函数…在Mercurial中,您可以使用hg diff -p
:
> hg diff
diff --git a/sandbox/sandbox.cpp b/sandbox/sandbox.cpp
--- a/sandbox/sandbox.cpp
+++ b/sandbox/sandbox.cpp
@@ -86,6 +103,8 @@
... diff output removed for conciseness
> hg diff -p
diff --git a/sandbox/sandbox.cpp b/sandbox/sandbox.cpp
--- a/sandbox/sandbox.cpp
+++ b/sandbox/sandbox.cpp
@@ -86,6 +103,8 @@ int _tmain(int argc, _TCHAR* argv[])
... diff output removed for conciseness
注意,使用-p
选项,diff输出的每个块都包含包含函数(在本例中为_tmain
)。注意,新函数似乎不包含这些信息。
我不知道你会怎么用这个,注意。也许grep输出包含@@.*(.*)
的行,以获得一个函数列表?
VCS通常是内容不可知论者,它们只知道文本行,其他什么都不知道。为了增加了解C函数,c++类,FORTRAN子程序/函数,…最后进入emacs-land。