/[Sack]/trunk/bin/sack.pl
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/bin/sack.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 58 by dpavlin, Fri Sep 25 12:24:19 2009 UTC revision 59 by dpavlin, Fri Sep 25 12:24:42 2009 UTC
# Line 142  sub send_sock { Line 142  sub send_sock {
142  sub merge_out {  sub merge_out {
143          my ( $from_node, $new ) = @_;          my ( $from_node, $new ) = @_;
144    
145          warn "### merge $from_node";          my $remote_digest = Sack::Digest->new( port => $from_node );
   
         my $from_port = $from_node;  
         $from_port =~ s{.+:(\d+)$}{$1};  
   
         my $remote_digest = Sack::Digest->new( port => $from_port );  
146          my ( $local, $remote ) = ( 0, 0 );          my ( $local, $remote ) = ( 0, 0 );
147    
148            my $tick = 0;
149            print STDERR "[$port] merge $from_node";
150    
151          foreach my $k1 ( keys %$new ) {          foreach my $k1 ( keys %$new ) {
152    
153                  foreach my $k2 ( keys %{ $new->{$k1} } ) {                  foreach my $k2 ( keys %{ $new->{$k1} } ) {
# Line 159  sub merge_out { Line 157  sub merge_out {
157                          if ( $k1 =~ m{#} ) {                          if ( $k1 =~ m{#} ) {
158                                  die "ASSERT $k1 $k2" unless $k2 =~ m{^\d+$};                                  die "ASSERT $k1 $k2" unless $k2 =~ m{^\d+$};
159  #warn "XXX $k1 $k2";  #warn "XXX $k1 $k2";
160                                  my $md5 = $remote_digest->{nr_md5}->[$k2] || warn "[$port] no2md5 $n not found in $from_port\n";                                  my $md5 = $remote_digest->{nr_md5}->[$k2] || warn "[$port] no2md5 $n not found in $from_node\n";
161                                  if ( my $local_k2 = $digest->{md5_nr}->{$md5} ) {                                  if ( my $local_k2 = $digest->{md5_nr}->{$md5} ) {
162                                          $k2 = $local_k2;                                          $k2 = $local_k2;
163                                          $local++;                                          $local++;
# Line 187  sub merge_out { Line 185  sub merge_out {
185                          } else {                          } else {
186                                  die "can't merge $k2 [$ref] from ",dump($n), " into ", dump($out->{$k1}->{$k2});                                  die "can't merge $k2 [$ref] from ",dump($n), " into ", dump($out->{$k1}->{$k2});
187                          }                          }
188    
189                            if ( $tick++ % 1000 == 0 ) {
190                                    print STDERR ".";
191                            } elsif ( $tick % 10000 == 0 ) {
192                                    print STDERR $tick;
193                            }
194                  }                  }
195          }          }
196    
197          warn "[$port] merge local $local remote $remote from $from_port\n";          print STDERR "$tick\n";
198    
199            warn "[$port] merge local $local remote $remote from $from_node\n";
200          warn "## merge out ", dump $out if $debug;          warn "## merge out ", dump $out if $debug;
201  }  }
202    

Legend:
Removed from v.58  
changed lines
  Added in v.59

  ViewVC Help
Powered by ViewVC 1.1.26