我正在进入一个新的代码库,目的是让它更稳定。我正在努力确定的是代码中大部分动荡的位置。
我正在寻找一种方法来查找存储库中哪些文件最常被更改,以便我可以提出一些重构的起点。似乎没有内置的 Mercurial 命令,而且 Google 似乎也没有提供太多东西(或者我使用了错误的术语。)
目前想到的只是编写一个脚本,该脚本将解析hg log -v
命令中的“文件:”行并手动计算文件。这会奏效,但如果我是第一个必须这样做的人,我会感到非常惊讶。
我正在进入一个新的代码库,目的是让它更稳定。我正在努力确定的是代码中大部分动荡的位置。
我正在寻找一种方法来查找存储库中哪些文件最常被更改,以便我可以提出一些重构的起点。似乎没有内置的 Mercurial 命令,而且 Google 似乎也没有提供太多东西(或者我使用了错误的术语。)
目前想到的只是编写一个脚本,该脚本将解析hg log -v
命令中的“文件:”行并手动计算文件。这会奏效,但如果我是第一个必须这样做的人,我会感到非常惊讶。
这将做到:
hg log --template "{files % '{file}\n'}" | sort | uniq -c | sort -rn
21 templates/base.html
19 TODO
8 content/about.rst
6 static/screen.css
这显示了 21 个 chngesets touch templates/base.html
,这是我的大部分小仓库。
我会建议以相反的方式移动
hg log FILENAME --template "+" | wc -m
这是一个适用于旧版 Mercurial 安装的版本:
$ hg grep --files-with-matches --all . | cut -d : -f 1 | sort | uniq -c | sort -rn
21 templates/base.html
19 TODO
8 content/about.rst
6 static/screen.css
如果文件名中有冒号,则还需要添加--print0
和更改cut
调用。