chiark / gitweb /
git-debrebase: introduce build_start
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Wed, 14 Jun 2017 23:18:12 +0000 (00:18 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jun 2018 11:25:49 +0000 (12:25 +0100)
git-debrebase

index 3578715679cb78b69feabed9841ba4e824ab7036..7b64bf51f5cf65ff6957ecab6cd784ff24af8535 100755 (executable)
@@ -342,6 +342,12 @@ sub walk {
        push @brw_cl, $sp_cl;
        push @processed, $sp_cl;
     };
+    my $build_start = sub {
+       my ($msg, $parents) = @_;
+       $prline->(" $msg");
+       push @brw_cl, { ExactlyParents => $parents };
+       no qw(exiting); last;
+    };
 
     my $cur = $input;
 
@@ -365,9 +371,7 @@ sub walk {
 
     for (;;) {
        if (!defined $cur) {
-           push @brw_cl, { ExactlyParents => [] };
-           $prline->("Origin");
-           last;
+           $build_start->('Origin', []);
        }
        $cl = classify $cur;
        my $ty = $cl->{Type};
@@ -385,8 +389,7 @@ sub walk {
            $cur = $p0;
            next;
        } elsif ($ty eq 'BreakwaterStart') {
-           push @brw_cl, { ExactlyParents => [$cur] };
-           last;
+           $build_start('FirstPackaging',[$cur]};
        } elsif ($ty eq 'Upstream') {
            push @upp_cl, $cl;
            $cur = $p0;
@@ -409,9 +412,7 @@ sub walk {
            $cur = $ty->{Contributor};
            next;
        } elsif ($ty eq 'BreakwaterUpstreamMerge') {
-           push @brw_cl, { ExactlyParents => [$cur] };
-           $prline->("PreviousBreakwater");
-           last;
+           $build_start->("PreviousBreakwater", [$cur]);
        } elsif ($ty eq 'DgitImportUnpatched') {
            my $pm = $pseudomerges[-1];
            if (defined $pm) {
@@ -471,12 +472,10 @@ sub walk {
                # is already in valid breakwater format, with the
                # patches as commits.
                printf $report " NoPM" if $report;
-               $prline->(" ImportOrigin");
                # last thing we processed will have been the first patch,
                # if there is one; which is fine, so no need to rewrite
                # on account of this import
-               push @brw_cl, { ExactlyParents => [$cur] };
-               last;
+               $build_start->("ImportOrigin",[$cur]);
            }
            die "$ty ?";
         } else {