… | |
… | |
102 | |
102 | |
103 | while () { |
103 | while () { |
104 | if ($diff >= 0 and (!@diff or $diff <= $diff[0][0])) { |
104 | if ($diff >= 0 and (!@diff or $diff <= $diff[0][0])) { |
105 | my @add = split /\0/, $vc->rcv; |
105 | my @add = split /\0/, $vc->rcv; |
106 | my @del = split /\0/, $vc->rcv; |
106 | my @del = split /\0/, $vc->rcv; |
|
|
107 | slog 0, "applying remote diff $diff\n"; |
|
|
108 | for (@del) { undef $rdel{$_}; delete $radd{$_}; delete $ladd{$_}; delete $ldel{$_}; } |
|
|
109 | for (@add) { undef $radd{$_}; delete $rdel{$_}; delete $ladd{$_}; delete $ldel{$_}; } |
107 | $diff = $vc->rcv; |
110 | $diff = $vc->rcv; |
108 | slog 0, "applying remote diff $diff\n"; |
|
|
109 | for (@del) { undef $rdel{$_}; delete $radd{$_}; delete $ladd{$_}; } |
|
|
110 | for (@add) { undef $radd{$_}; delete $rdel{$_}; delete $ldel{$_}; } |
|
|
111 | } elsif (@diff) { |
111 | } elsif (@diff) { |
112 | slog 0, "applying local diff $diff[0][0]\n"; |
112 | slog 0, "applying local diff $diff[0][0]\n"; |
113 | for (@{$diff[0][2]}) { undef $rdel{$_}; delete $radd{$_}; delete $ladd{$_}; } |
113 | for (@{$diff[0][2]}) { undef $rdel{$_}; delete $radd{$_}; delete $ladd{$_}; delete $ldel{$_}; } |
114 | for (@{$diff[0][1]}) { undef $radd{$_}; delete $rdel{$_}; delete $ldel{$_}; } |
114 | for (@{$diff[0][1]}) { undef $radd{$_}; delete $rdel{$_}; delete $ladd{$_}; delete $ldel{$_}; } |
115 | shift @diff; |
115 | shift @diff; |
116 | } else { |
116 | } else { |
117 | slog 0, "no more diffing\n"; |
117 | slog 0, "no more diffing\n"; |
118 | last; |
118 | last; |
119 | } |
119 | } |