chiark / gitweb /
git-debrebase: capture breakwater tip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Thu, 9 Feb 2017 00:16:47 +0000 (00:16 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jun 2018 11:25:49 +0000 (12:25 +0100)
git-debrebase

index 6542c65..fbb9732 100755 (executable)
@@ -343,6 +343,7 @@ sub launder ($$$) {
        mkdir $rd or $!==EEXIST or die $!;
        my $current_method;
        foreach my $cl (qw(Debian), (reverse @deb_cl),
+                       { SpecialMethod => 'RecordBreakwaterTip' },
                        qw(Upstream), (reverse @ups_cl)) {
            if (!ref $cl) {
                $current_method = $cl;
@@ -358,6 +359,10 @@ sub launder ($$$) {
            } elsif ($method eq 'StartRewrite') {
                $rewriting = 1;
                next;
+           } elsif ($method eq 'RecordBreakwaterTip') {
+               last if $wantdebonly;
+               $breakwater = $build;
+               next;
            } elsif ($method eq 'DgitImportDebianUpdate') {
                $read_tree_debian->($cltree);
                $rm_tree_cached(qw(debian/patches));
@@ -396,7 +401,7 @@ sub launder ($$$) {
        map { $wantdebonly ? "$_:debian" : $_ },
        $input, $build;
 
-    return $build;
+    return ($build, $breakwater);
 }
 
 sub get_head () { return git_rev_parse qw(HEAD); }
@@ -408,8 +413,9 @@ sub update_head ($$) {
 
 sub cmd_launder () {
     my $old = get_head();
-    my $got = launder $old, 0, undef, 0;
-    update_head $old, $new, 'launder'; # no tree changes!
+    my ($tip,$breakwater) = launder $old, 0, undef, 0;
+    update_head $old, $tip, 'launder'; # no tree changes!
+    printf "# breakwater tip:\n%s\n", $breakwater;
 }
 
 my $toplevel = runcmd @git, qw(rev-parse --show-toplevel);