chiark / gitweb /
git-debrebase: walk: Move $read_tree_upstream into the loop
[dgit.git] / git-debrebase
index 41373f3e82f4083291bb74f586ba229303b799ef..24aefbe574c4e53703c0dff6969e376c24d97984 100755 (executable)
@@ -1423,11 +1423,6 @@ sub walk ($;$$$) {
 
     my $rewriting = 0;
 
-    my $read_tree_upstream = sub {
-       my ($treeish) = @_;
-       read_tree_upstream $treeish, 0, $build;
-    };
-
     $#upp_cl = $upp_limit if defined $upp_limit;
  
     my $committer_authline = calculate_committer_authline();
@@ -1440,6 +1435,12 @@ sub walk ($;$$$) {
        mkdir $rd or $!==EEXIST or die $!;
        my $current_method;
        runcmd @git, qw(read-tree), $build;
+
+       my $read_tree_upstream = sub {
+           my ($treeish) = @_;
+           read_tree_upstream $treeish, 0, $build;
+       };
+
        foreach my $cl (qw(Debian), (reverse @brw_cl),
                        { SpecialMethod => 'RecordBreakwaterTip' },
                        qw(Upstream), (reverse @upp_cl)) {
@@ -1474,7 +1475,6 @@ sub walk ($;$$$) {
                print "Found a general merge, will try to tidy it up.\n";
                $rewriting = 1;
                $read_tree_upstream->($cl->{MergeBestAnchor});
-               $read_tree_upstream->($cl->{MergeBestAnchor});
                read_tree_debian($cltree);
                @parents = map { $_->{Breakwater} } @{ $cl->{Parents} };
            } elsif ($method eq 'MergeMergeSeries') {