chiark / gitweb /
wip gitattrs dealt with
[dgit.git] / git-debrebase
index 90b7b6c068a457fe8fb513b2e017bb9aeb1c75ca..56dab889aac8cd82533f9fe330b39b68c72cee30 100755 (executable)
@@ -279,8 +279,9 @@ sub classify ($) {
        !($p[0]{Differs} & ~D_DEB) &&
        !($p[1]{Differs} & ~D_UPS)) {
        return $classify->(qw(BreakwaterUpstreamMerge),
-                          Upstream => $p[1]);
+                          OrigParents => [ $p[1] ]);
     }
+    # xxx multi-.orig upstreams
 
     return $unknown->("complex merge");
 }
@@ -339,7 +340,13 @@ sub launder ($$$) {
            next;
        } elsif ($ty eq 'Pseudomerge') {
            if (defined $pseudos_must_overwrite_this) {
-               confess 'xxx actually check this';
+               grep {
+                   is_fast_fwd $pseudos_must_overwrite_this, $_->{CommitId}
+               },
+                   @{ $cl->{Overwritten} }
+               or
+                   die "Pseudomerge $cl->{CommitId} does not overwrite ".
+                       "$pseudos_must_overwrite_this as expected.";
            }
            push @pseudomerges, $cl;
            $rewrite_from_here->();
@@ -383,7 +390,6 @@ sub launder ($$$) {
     # Now we build it back up again
 
     workarea_fresh();
-    in_workarea sub { xxx attributes xxx };
 
     my $rewriting = 1;