我有一位不太了解源控制的教授。他要求我们使用注释来确定谁编写了每行代码。大多数类使用电子邮件作为版本控制,Visual C ++作为语言导致一堆评论,插入符号和生成的代码。我的小组正在使用subversion和C#,我更愿意从存储库中获取历史记录,而不是在每一行都添加注释来混淆代码。
我需要一种方法来生成所有签到的可查看历史记录,以显示每个用户修改了多少来源。
像这样的格式会很好
Andy
/trunk/doc/file.txt (57%)
/trunk/project/app.h (100%)
Brian
/trunk/doc/file.txt (43%)
/trunk/project/app.cpp (60%)
Jeff
/trunk/project/app.cpp (40%)
我该怎么做? BASH有足够的力量做到这一点还是应该使用python? (我会在linux系统上生成diff)
答案 0 :(得分:5)
在我看来,你想要像svn blame
这样的东西。
如果您想要百分比,可能需要一些后期处理。此外,您还必须担心修改计数到最后一个接触该线路的人。
答案 1 :(得分:1)
要回答问题的第二部分,如果您了解Python(或类似),您将找到为您处理SVN集成的库。这比通过bash与SVN交谈并尝试查询SVN可执行文件的输出更简单。
e.g。见Pysvn
答案 2 :(得分:1)
它尚未准备好使用解决方案,但我留给您:)
对于每个文件,即类似于:
for i in `ls -1`; do svn blame...; done
运行:
svn blame full_svn_path_to_file |tr -s '\040' |tr '\040' ';'|cut -d \; -f 3|sort -u
这将为您提供更改文件full_svn_path_to_file的唯一用户列表。
使用此列表以及wc
和for
命令,您可以尝试计算百分比......