# Script forked from Panike: https://gist.github.com/panike/811354 sub new_hl { my @l = (); return \@l; } @args = @ARGV; shift @args; print "\n"; print "
\n"; print " \n"; print "\n"; print "\n"; open REVLIST, "git log " . join(' ',@args) . " --topo-order --abbrev-commit --graph|" || die "Cannot get log"; while(\n"; print "\n";){ chomp; if(/^Merge: /){ next; } if(/^commit/){ @list = split / /; @tlist = @list; print "commit $list[1]\n"; @list = @list[2 .. $#list]; foreach $key (@list) { print "parent $key\n"; if(!$commits{$key}){ $commits{$key}=new_hl; } push @{$commits{$key}}, $tlist[1]; } foreach $key (@{$commits{$tlist[1]}}){ print "child $key\n"; } }else{ s/\</g; s/>/\>/g; print; print "\n"; } } print "