This simple Perl script echoes the entire project history into a format suitable for consumption from the organic project development visualizer code_swarm http://vis.cs.ucdavis.edu/~ogawa/codeswarm/ and any other software that expects a file event XML file in the same format. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@xxxxxxxxx> --- contrib/git-file-events.perl | 28 ++++++++++++++++++++++++++++ 1 files changed, 28 insertions(+), 0 deletions(-) create mode 100755 contrib/git-file-events.perl I had actually considered writing a patch to add the format as a predefined format for git log, but on second thoughts I decided it was not really worth the effort. This script, although it's just a quick hack, serves the purpose just as well, although it's obviously not suited for anything more than contrib/, if for anything at all. Enjoy. diff --git a/contrib/git-file-events.perl b/contrib/git-file-events.perl new file mode 100755 index 0000000..b5fd5e5 --- /dev/null +++ b/contrib/git-file-events.perl @@ -0,0 +1,28 @@ +#!/usr/bin/perl + +# Output full repository log as a list of file events, in the format expected by +# code_swarm http://vis.cs.ucdavis.edu/~ogawa/codeswarm/ +# +# Usage: perl git-file-events.perl > events.xml + +open(LOG, 'git log --reverse --date-order --format="%x09%at000%x09%aN" --name-only|'); + +my $date = undef; +my $author = undef; + +print "<?xml version=\"1.0\" ?>\n<file_events>\n"; +while (<LOG>) { + chomp; + if (/^\t(\d+)\t(.*)/) { + $date = $1; + $author = $2; + } else { + next unless $_; + die "Malformed log: no author!\n'$_'\n" unless $author; + $file = $_; + $file =~ s/\n//g; + $file =~ s/"//g; + print "<event date=\"$date\" filename=\"$_\" author=\"$author\" />\n"; + } +} +print "</file_events>\n"; -- 1.6.4.1.345.ge2d8f -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html