[PATCH] Exporter for code_swarm
From: Giuseppe Bilotta <hidden>
Date: 2016-06-15 22:47:25
Subsystem:
the rest · Maintainer:
Linus Torvalds
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 <redacted> --- 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