X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=git-debrebase;h=8253cb7a17aec5cdfa9e964e7b705b808a5747f2;hp=bdde809d6769b446409159955e87f8bf031ac6c1;hb=65025cb45c2739135ac4161a99d15e6555a9a794;hpb=cd2fb073d878511939ff074c19729acf6d598365 diff --git a/git-debrebase b/git-debrebase index bdde809d..8253cb7a 100755 --- a/git-debrebase +++ b/git-debrebase @@ -651,26 +651,15 @@ sub walk ($;$$) { %$cl, SpecialMethod => 'DgitImportDebianUpdate', $xmsg->("convert dgit import: debian changes") + }, { + %$cl, + SpecialMethod => 'DgitImportUpstreamUpdate', + $xmsg->("convert dgit import: upstream update", + " breakwater") }; - my $differs = (get_differs $ovwr, $cl->{Tree}); - printf $report " Differs=%#x", $differs if $report; - if ($differs & D_UPS) { - printf $report " D_UPS" if $report; - # This will also trigger if a non-dgit git-based NMU - # deleted .gitignore (which is a thing that some of - # the existing git tools do if the user doesn't - # somehow tell them not to). Ah well. - push @brw_cl, { - %$cl, - SpecialMethod => 'DgitImportUpstreamUpdate', - $xmsg->("convert dgit import: upstream changes", - " breakwater") - }; - } $prline->(" Import"); $rewrite_from_here->(); $upp_limit //= $#upp_cl; # further, deeper, patches discarded - die 'BUG $upp_limit is not used anywhere?'; $cur = $ovwr; next; } else { @@ -712,6 +701,8 @@ sub walk ($;$$) { runcmd @git, qw(read-tree), $treeish; $read_tree_debian->($build); }; + + $#upp_cl = $upp_limit if defined $upp_limit; my $committer_authline = calculate_committer_authline(); @@ -747,8 +738,10 @@ sub walk ($;$$) { next; } elsif ($method eq 'DgitImportDebianUpdate') { $read_tree_debian->($cltree); - rm_subdir_cached qw(debian/patches); } elsif ($method eq 'DgitImportUpstreamUpdate') { + confess unless $rewriting; + my $differs = (get_differs $build, $cltree); + next unless $differs & D_UPS; $read_tree_upstream->($cltree); push @parents, map { $_->{CommitId} } @{ $cl->{OrigParents} }; } else { @@ -764,7 +757,7 @@ sub walk ($;$$) { my $newtree = cmdoutput @git, qw(write-tree); my $ch = $cl->{Hdr}; $ch =~ s{^tree .*}{tree $newtree}m or confess "$ch ?"; - $ch =~ s{^parent .*\n}{}m; + $ch =~ s{^parent .*\n}{}mg; $ch =~ s{(?=^author)}{ join '', map { "parent $_\n" } @parents }me or confess "$ch ?";