2010-01-22 2 views

ответ

5

Вы ищете this extension.

+0

я задал этот вопрос на SD _перед_ пытается взломать мой собственный сценарий :) –

+0

@ Thr4wn, совершенно не связаны, но я абсолютно выкопать свой аватар хР –

+0

расширение продолжает работать с текущим hg? (и если вы хотите что-то очень простое, вы можете использовать hg debugindexdot) – tonfa

3

Я написал сценарий для этого (и назвал его hghistory2dot.pl). См его использование ниже код:

#!/usr/bin/perl 
print "digraph {\n"; 
$first = 1; 
$cset =(); 

sub printedge { 
    my $one = csetstr(shift(@_)); 
    my $two = csetstr(shift(@_)); 
    print $one, " -> ", $two, ";\n"; 
} 

sub csetstr { 
    my $csetid = shift(@_); 
    $csetid =~ s/\s//; 
    $csetid =~ s/\\n//; 
    return "cset_" . $csetid; 
} 

while($line = <>) { 
    if (!($line eq "\n")) { 
    $line =~ s/\n/\\n/; 
    push(@cset, $line); 
    } 
    else { 
    print csetstr($current), " [shape=record label=\"", @cset, "\"];\n"; 
    @cset =(); 
    } 

    if($line =~ m/^changeset/) { 
    @arr = split(/:/, $line); 
    $arr[2] =~ s/\s//; 

    if(! $parent_found && ! $first) { 
     #previous changeset had no defined parent; therefore this one is the implied parent. 
     printedge($current, $arr[2]); 
    } 

    $current = $arr[2]; 

    $parent_found = 0; 
    $first = 0; 
    } 
    elsif($line =~ m/^parent/) { 
    $parent_found = 1; 
    @arr = split(/:/, $line); 
    $arr[2] =~ s/\s//; 
    printedge($current, $arr[2]); 
    } 
} 

print "}\n"; 

hg history | hghistory2dot.pl | dot -Tpng > tree.png