Svn Subversion:从包含用户名的每个签入生成完整的差异

Svn Subversion:从包含用户名的每个签入生成完整的差异,svn,diff,Svn,Diff,我有一位教授对源代码管理不是很了解。他要求我们使用注释来确定谁编写了每行代码。该类的大多数使用电子邮件作为版本控制和Visual C++作为语言,导致混乱的评论、插入和生成的代码。我的小组正在使用subversion和C#,我更喜欢从存储库中获取历史记录,而不是在每一行上都用注释来混乱代码 我需要一种方法来生成所有签入的可查看历史记录,显示每个用户修改了多少源代码 这样的格式就好了 Andy /trunk/doc/file.txt (57%) /trunk/project/app.h (100%

我有一位教授对源代码管理不是很了解。他要求我们使用注释来确定谁编写了每行代码。该类的大多数使用电子邮件作为版本控制和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)

在我看来,您需要类似的东西


如果需要百分比,可能需要一些后期处理。您还必须担心修改会计入最后一个接触到该行的人。

要回答问题的第二部分,如果您了解Python(或类似语言),您将找到一些库来为您处理SVN集成。这将比通过bash与SVN交谈并尝试查询SVN可执行文件的输出更简单


e、 g.请参见

该解决方案尚未准备就绪,但我将其留给您:)

对于每个文件,即具有类似于:

for i in `ls -1`; do svn blame...; done
运行:

这将为您提供将文件完整路径更改为文件的唯一用户列表

使用此列表和
wc
for
命令,您可以尝试计算百分比


祝你好运

太棒了。我不知道那个命令!这比使用diff要容易得多。谢谢,部分解决方案为我提供了一个起点。一个现成的脚本会带来一些乐趣
svn blame full_svn_path_to_file |tr -s '\040' |tr '\040' ';'|cut -d \; -f 3|sort -u