擅长:python、mysql、java
<p><strong>编辑</strong>:显然,即使下面的前一个解决方案也只影响“文件”统计页,这并不有趣。我在找更好的。我们需要修复的线路是254,这:</p>
<pre><code> lines = getpipeoutput(['git rev-list pretty=format:"%%at %%ai %%aN <%%aE>" %s' % getcommitrange('HEAD'), 'grep -v ^commit']).split('\n')
</code></pre>
<p>以前的尝试是:</p>
<p>不幸的是,git似乎没有提供在提交时(在git日志和git rev列表中)按文件轻松过滤的选项。这个解决方案并不是真正地过滤某些文件类型的所有统计信息(例如标记上的统计信息),而是对根据更改的行数计算活动的部分进行过滤。在</p>
<p>所以我能想到的最好的方法是gitstats的第499行(主脚本):</p>
^{pr2}$
<p>您可以通过在命令中将管道添加到grep中来更改,如下所示:</p>
<pre><code>res = int(getpipeoutput(['git ls-tree -r name-only "%s"' % rev, 'grep \\.py$', 'wc -l']).split('\n')[0])
</code></pre>
<p>或者,您可以拆分“wc-l”部分,将git ls tree的输出转换为一个字符串列表,并使用fnmatch模块过滤结果文件名(然后计算每个文件中的行数,可能使用“wc-l”),但对于您要解决的特定问题,这听起来似乎有些过头了。在</p>
<p>仍然不能解决问题(其余的统计信息将忽略此过滤器),但希望能有所帮助。在</p>