From: Giuseppe Bilotta Date: Wed, 16 Sep 2009 20:27:03 GMT Subject: [PATCH] Exporter for code_swarm Message-ID: <1253132823-29993-1-git-send-email-giuseppe.bilotta@gmail.com> 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 --- 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 "\n\n"; +while () { + 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 "\n"; + } +} +print "\n"; -- 1.6.4.1.345.ge2d8f