From: Ian Jackson Date: Sun, 19 Aug 2018 16:46:42 +0000 (+0100) Subject: git-debrebase: New get_tree machinery: Fix debugging X-Git-Tag: archive/debian/6.7~49 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=d806e898308acbaca5685a4dec6688c0164ea642 git-debrebase: New get_tree machinery: Fix debugging When we localise, we get a new variable, rather than localising the binding imported from Debian::Dgit. How annoying. Also, add two new debug prints at level 3. Signed-off-by: Ian Jackson --- diff --git a/git-debrebase b/git-debrebase index e5639a27..8fa5adb7 100755 --- a/git-debrebase +++ b/git-debrebase @@ -193,7 +193,7 @@ sub get_tree ($) { my $memo = $get_tree_memo{$x}; return @$memo if $memo; - local $debugcmd_when_debuglevel = 3; + local $Debian::Dgit::debugcmd_when_debuglevel = 3; my @l; my @cmd = (qw(git ls-tree -z --full-tree --), $x); my $o = cmdoutput @cmd; @@ -223,11 +223,15 @@ sub trees_diff_walk ($$$;$) { return if !$all and $x eq $y; my @x = get_tree $x; my @y = get_tree $y; + printdebug "trees_diff_walk(..$x,$y..) ".Dumper(\@x,\@y) + if $debuglevel >= 3; while (@x || @y) { my $cmp = !@x <=> !@y # eg @y empty? $cmp=-1, use x || $x[0][0] cmp $y[0][0]; # eg, x lt y ? $cmp=-1, use x my ($n, $ix, $iy); # all same? $cmp=0, use both $ix=$iy=''; + printdebug "trees_diff_walk $cmp : @{ $x[0]//[] } | @{ $y[0]//[] }\n" + if $debuglevel >= 3; ($n, $ix) = @{ shift @x } if $cmp <= 0; ($n, $iy) = @{ shift @y } if $cmp >= 0; next if !$all and $ix eq $iy;