相关文章推荐
追风的茶壶  ·  process.send is ...·  2 年前    · 

假设原始文件存放在目录old中,文件改动后存放在目录new中。
若要统计改动过程中新增的和修改的总行数,使用如下代码

diff -Nur old new|egrep "^\+"|grep -v "+++"|wc -l

若要统计改动过程中删除的和修改的总行数,使用如下代码

diff -Nur old new|egrep "^\-"|grep -v "---"|wc -l

以上统计主要是利用了diff输出的特性,diff的具体细节请参考读懂diff

实际使用中,可能会有文件名和目录名大小写不一致的情况,如果希望忽略 文件名大小写的差异,需要使用 --ignore-case 参数,否则两个一样的文件 一个会算作删除,一个会算作新增 G:\diffcount>diffcount test\sp1 test\sp2 Diffcount [test\sp1] and [test\sp2] result: LANG ADD MOD DEL A&M BLK CMT NBNC RATE ----------------------------------------------------------------------- C 44 7 26 51 8 11 35 1.00 Pascal 0 0 25 0 0 0 0 0.23 Java 7 4 11 11 0 3 9 0.41 Config 31 4 0 35 1 0 34 0.12 XML 126 0 0 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert all NBNC lines to standard C Total: 57.65 (standard C lines) ADD MOD DEL A&M BLK CMT NBNC RATE 的 含义分别为: 新增、修改、删除、新增+修改、空行、注释、非空非注释行、标准C折算率 如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码包 代码统计使用 -c (或者--count-only)参数, 在diffcount目录下执行 diffcount -c test\count 执行结果如下: G:\diffcount>diffcount -c test\count Counting package [test\count] result: LANG TOTAL BLK CMT NBNC RATE ----------------------------------------------------------------------- C 203 46 61 101 1.00 C++ 57 7 25 25 0.42 Pascal 117 24 17 79 0.23 Java 71 7 24 40 0.41 ASM 129 34 12 85 2.50 C# 18 1 1 17 0.20 Basic 447 140 20 295 0.21 Perl 97 4 26 74 0.16 TCL/TK 91 12 26 54 0.50 Config 116 13 0 103 0.12 XML 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert 一款基于beyondCompare的代码差异行数统计工具 原理是,使用命令行调用beyond生成差异行报告,分析汇总扫描报告 也可以进行代码行数统计,如果遇到报错,关闭报错窗口,会自动重新计算。 当BaseDirPath为空时,可以用来统计代码行数 注意事项: 需要excel,和beyondCompare (均需要激活) 完成后会生成excel文件, Git地址: https://codehub.devcloud.cn-north-4.huaweicloud.com/tool00003/beyondComp 使用beyond compare可对比两个版本的代码之间的差异,一般可用来查看新版本与旧版本之间改动了那些文件(当然不仅仅是代码比对,还可以用于任意两个文件夹之间的比对),下面记录下使用此工具的操作: 1、只保留需要对比的文件:在我们代码比对的时候,很多时候只需要比对java文件(或者class文件)、xml、配置文件等常见的改动,很多文件比如静态资源等基本上是不需要比对的,所以这时可以选择过滤一些文件,点击过滤的图标,在弹出框把一些不需要比对的文件过滤掉 Diffcount [test\sp1] and [test\sp2] result: LANG ADD MOD DEL A&M BLK CMT NBNC RATE ----------------------------------------------------------------------- C 44 7 26 51 8 11 35 1.00 Pascal 0 0 25 0 0 0 0 0.23 Java 7 4 11 11 0 3 9 0.41 Config 31 4 0 35 1 0 34 0.12 XML 126 0 0 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert all NBNC lines to standard C Total: 57.65 (standard C lines) ADD MOD DEL A&M BLK CMT NBNC RATE 的 含义分别为: 新增、修改、删除、新增+修改、空行、注释、非空非注释行、标准C折算率 如果需要,可以把diffcount当作普通的代码行统计工具,统计一个代码包 代码统计使用 -c (或者--count-only)参数, 在diffcount目录下执行 执行结果如下: Counting package [test\count] result: LANG TOTAL BLK CMT NBNC RATE ----------------------------------------------------------------------- C 203 46 61 101 1.00 C++ 57 7 25 25 0.42 Pascal 117 24 17 79 0.23 Java 71 7 24 40 0.41 ASM 129 34 12 85 2.50 C# 18 1 1 17 0.20 Basic 447 140 20 295 0.21 Perl 97 4 26 74 0.16 TCL/TK 91 12 26 54 0.50 Config 116 13 0 103 0.12 XML 126 2 0 124 0.12 ----------------------------------------------------------------------- Convert all NBNC lines to standard C Total: 490.00 (standard C lines) 如果想显示每一个文件的具体信息,请使用 --print-files-info 参数 Beyond Compare是一款经典的文件对比工具,面对纷繁复杂的程序源文件和文件夹,Beyond Compare可能有效地提高程序员的工作效率,软件支持源代码文件的对比、修改、合并,代码目录对比以及代码更新定位,是一款IT程序工程师的必备源码管理工具。 1、双击电脑桌面“Beyond Compare”快捷方式图标,打开软件主页面。 Beyond Compare主界面 2、在主页面左侧... diffcount 使用beyond compare比较前后两个工程中,修改的代码量,只可以查看两个文件差异的节数。 使用diffcount,可以直接统计前后两个工程中,增加、删除、修改的代码行数。 http://sourceforge.net/projects/diffcount/?source=directory http://diffcount.sourceforge.n LANG    ADD     MOD     DEL     A&M     BLK     CMT     NBNC    RATE -----------------------------------------... Beyond Compare是智能的比较工具,它只需使用简单的命令和操作,即可开启最优质的对比体验,在使用Beyond Compare对比smali代码过程中,会发现很多代码文件的差异几乎全部标红,很多只是行号的差异。遇到这样的情况,该怎么做呢?接下来就讲解一下,在Beyond Compare...