X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=git-debrebase;h=86958820221ec4b1212f708a7e1749572f7a8e29;hb=5e05a8f7605034ee94826bd72688f544c965f74c;hp=931a0124bf367e678f39da4ef26cc2571e10efdc;hpb=9aee0c0b6c45810895cf7349059c4178eabc4e19;p=dgit.git diff --git a/git-debrebase b/git-debrebase index 931a0124..86958820 100755 --- a/git-debrebase +++ b/git-debrebase @@ -785,13 +785,18 @@ sub update_head_checkout ($$$) { update_head $old, $new, $mrest; } +sub update_head_postlaunder ($$$) { + my ($old, $tip, $reflogmsg) = @_; + update_head $old, $tip, $reflogmsg; + # no tree changes except debian/patches + runcmd @git, qw(rm --quiet --ignore-unmatch -rf debian/patches); +} + sub cmd_launder () { badusage "no arguments to launder allowed" if @ARGV; my $old = get_head(); my ($tip,$breakwater,$last_upstream_merge) = walk $old; - update_head $old, $tip, 'launder'; - # no tree changes except debian/patches - runcmd @git, qw(rm --quiet --ignore-unmatch -rf debian/patches); + update_head_postlaunder $old, $tip, 'launder'; printf "# breakwater tip\n%s\n", $breakwater; printf "# working tip\n%s\n", $tip; printf "# last upstream merge\n%s\n", $last_upstream_merge; @@ -962,8 +967,9 @@ sub cmd_new_upstream_v0 () { # Now we have to add a changelog stanza so the Debian version # is right. die if unlink "debian"; - die $! unless $!==ENOTEMPTY; - unlink "debian/changelog" or die $!; + die $! unless $!==ENOENT or $!==ENOTEMPTY; + unlink "debian/changelog" or $!==ENOENT or die $!; + mkdir "debian" or die $!; open CN, ">", "debian/changelog" or die $!; my $oldclog = git_cat_file ":debian/changelog"; $oldclog =~ m/^($package_re) \(\S+\) / or @@ -991,7 +997,8 @@ END # the laundering output, because git-rebase can't easily be made # to make a replay list which is based on some other branch - update_head $old_head, $old_laundered_tip, 'launder for new upstream'; + update_head_postlaunder $old_head, $old_laundered_tip, + 'launder for new upstream'; my @cmd = (@git, qw(rebase --onto), $new_bw, $old_bw); runcmd @cmd;