chiark / gitweb /
git-debrebase: README: change diagrams to use @ for anchor
[dgit.git] / git-debrebase
index 2b6584630516bb3208c0874413c1bbe791168f94..b9f36ca5d3cab9a146d9bc1d247f62626c10e984 100755 (executable)
@@ -330,10 +330,12 @@ sub any_fproblems () {
 #     has additional entry in classification result
 #       OrigParents = [ subset of Parents ]
 #
-#   BreakwaterUpstreamMerge
+#   Anchor
 #     has additional entry in classification result
 #       OrigParents = [ subset of Parents ]  # singleton list
 #
+#   BreakwaterStart
+#
 #   Unknown
 #     has additional entry in classification result
 #       Why => "prose"
@@ -400,12 +402,12 @@ sub classify ($) {
        return $r;
     };
 
-    my $claims_to_be_breakwater =
-       $r->{Msg} =~ m{^\[git-debrebase breakwater.*\]$}m;
+    my $claims_to_be_anchor =
+       $r->{Msg} =~ m{^\[git-debrebase anchor.*\]$}m;
 
     if (@p == 1) {
-       if ($claims_to_be_breakwater) {
-           return $unknown->("single-parent git-debrebase breakwater \`merge'");
+       if ($claims_to_be_anchor) {
+           return $unknown->("single-parent git-debrebase anchor \`merge'");
        }
        my $d = $r->{Parents}[0]{Differs};
        if ($d == D_PAT_ADD) {
@@ -440,8 +442,8 @@ sub classify ($) {
     }
 
     my @identical = grep { !$_->{Differs} } @p;
-    if (@p == 2 && @identical == 1 && !$claims_to_be_breakwater
-       # breakwater merges can look like pseudomerges, if they are
+    if (@p == 2 && @identical == 1 && !$claims_to_be_anchor
+       # anchor merges can look like pseudomerges, if they are
        # "declare" commits (ie, there are no upstream changes)
        ) {
        my @overwritten = grep { $_->{Differs} } @p;
@@ -488,7 +490,7 @@ sub classify ($) {
     my ($stype, $series) = git_cat_file "$t:debian/patches/series";
     my $haspatches = $stype ne 'missing' && $series =~ m/^\s*[^#\n\t ]/m;
 
-    # How to decide about l/r ordering of breakwater merges ?  git
+    # How to decide about l/r ordering of anchors ?  git
     # --topo-order prefers to expand 2nd parent first.  There's
     # already an easy rune to look for debian/ history anyway (git log
     # debian/) so debian breakwater branch should be 1st parent; that
@@ -496,9 +498,9 @@ sub classify ($) {
     # patches (--topo-order).
 
     # The above tells us which way *we* will generate them.  But we
-    # might encounter ad-hoc breakwater merges generated manually,
+    # might encounter ad-hoc anchor merges generated manually,
     # which might be the other way around.  In principle, in some odd
-    # situations, a breakwater merge might have two identical parents.
+    # situations, an anchor merge might have two identical parents.
     # In that case we guess which way round it is (ie, which parent
     # has the upstream history).  The order of the 2-iteration loop
     # controls which guess we make.
@@ -509,12 +511,12 @@ sub classify ($) {
            !$p[$prevbrw]{IsOrigin} && # breakwater never starts with an origin
            !($p[!$prevbrw]{Differs} & ~DS_DEB) && # no non-debian changess
            !($p[$prevbrw]{Differs} & ~D_UPS)) { # no non-upstream changes
-           return $classify->(qw(BreakwaterUpstreamMerge),
+           return $classify->(qw(Anchor),
                               OrigParents => [ $p[!$prevbrw] ]);
        }
     }
 
-    # multi-orig upstreams are represented with a breakwater merge
+    # multi-orig upstreams are represented with an anchor merge
     # from a single upstream commit which combines the orig tarballs
 
     return $unknown->("complex merge");
@@ -533,7 +535,7 @@ sub breakwater_of ($) {
        if ($ty eq 'Packaging' or
            $ty eq 'Changelog') {
            $breakwater //= $head;
-       } elsif ($ty eq 'BreakwaterUpstreamMerge' or
+       } elsif ($ty eq 'Anchor' or
                 $ty eq 'BreakwaterStart') {
            $breakwater //= $head;
            last;
@@ -560,7 +562,7 @@ sub walk ($;$$);
 sub walk ($;$$) {
     my ($input,
        $nogenerate,$report) = @_;
-    # => ($tip, $breakwater_tip, $last_upstream_merge_in_breakwater)
+    # => ($tip, $breakwater_tip, $last_anchor)
     # (or nothing, if $nogenerate)
 
     printdebug "*** WALK $input ".($nogenerate//0)." ".($report//'-')."\n";
@@ -622,7 +624,7 @@ sub walk ($;$$) {
        no warnings qw(exiting); last;
     };
 
-    my $last_upstream_update;
+    my $last_anchor;
 
     for (;;) {
        $cl = classify $cur;
@@ -641,7 +643,7 @@ sub walk ($;$$) {
            $cur = $p0;
            next;
        } elsif ($ty eq 'BreakwaterStart') {
-            $last_upstream_update = $cur;
+            $last_anchor = $cur;
            $build_start->('FirstPackaging', $cur);
        } elsif ($ty eq 'Upstream') {
            push @upp_cl, $cl;
@@ -665,9 +667,9 @@ sub walk ($;$$) {
            $rewrite_from_here->();
            $cur = $contrib;
            next;
-       } elsif ($ty eq 'BreakwaterUpstreamMerge') {
-            $last_upstream_update = $cur;
-           $build_start->("PreviousBreakwater", $cur);
+       } elsif ($ty eq 'Anchor') {
+            $last_anchor = $cur;
+           $build_start->("Anchor", $cur);
        } elsif ($ty eq 'DgitImportUnpatched') {
            my $pm = $pseudomerges[-1];
            if (defined $pm) {
@@ -708,7 +710,7 @@ sub walk ($;$$) {
                    %$cl,
                    SpecialMethod => 'DgitImportUpstreamUpdate',
                     $xmsg->("convert dgit import: upstream update",
-                           " breakwater")
+                           " anchor")
                };
                $prline->(" Import");
                $rewrite_from_here->();
@@ -829,7 +831,7 @@ sub walk ($;$$) {
            confess "$ch ?" unless $rewriting or $newcommit eq $cl->{CommitId};
            $build = $newcommit;
             if (grep { $method eq $_ } qw(DgitImportUpstreamUpdate)) {
-                $last_upstream_update = $cur;
+                $last_anchor = $cur;
             }
        }
     };
@@ -838,7 +840,7 @@ sub walk ($;$$) {
     die sprintf "internal error %#x %s %s", $final_check, $build, $input
        if $final_check & ~D_PAT_ADD;
 
-    my @r = ($build, $breakwater, $last_upstream_update);
+    my @r = ($build, $breakwater, $last_anchor);
     printdebug "*** WALK RETURN @r\n";
     return @r
 }
@@ -871,11 +873,11 @@ sub update_head_postlaunder ($$$) {
 sub cmd_launder () {
     badusage "no arguments to launder allowed" if @ARGV;
     my $old = get_head();
-    my ($tip,$breakwater,$last_upstream_merge) = walk $old;
+    my ($tip,$breakwater,$last_anchor) = walk $old;
     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;
+    printf "# last anchor\n%s\n", $last_anchor;
 }
 
 sub defaultcmd_rebase () {
@@ -1128,14 +1130,14 @@ sub cmd_new_upstream_v0 () {
 
        # $new_upstream is either the single upstream commit, or the
        # combined commit we just made.  Either way it will be the
-       # "upstream" parent of the breakwater special merge.
+       # "upstream" parent of the anchor merge.
 
        read_tree_subdir 'debian', "$old_bw:debian";
 
-       # index now contains the breakwater merge contents
+       # index now contains the anchor merge contents
         $new_bw = make_commit [ $old_bw, $new_upstream ],
             [ "Update to upstream $new_upstream_version",
- "[git-debrebase breakwater: new upstream $new_upstream_version, merge]",
+ "[git-debrebase anchor: new upstream $new_upstream_version, merge]",
             ];
 
        # Now we have to add a changelog stanza so the Debian version
@@ -1280,12 +1282,12 @@ sub cmd_convert_from_gbp () {
  'Delete debian/patches, as part of converting to git-debrebase format.',
  '[git-debrebase convert-from-gbp: drop patches from tree]'
                              ];
-       # make the breakwater pseudomerge
+       # make the anchor merge
        # the tree is already exactly right
        $work = make_commit [$work, $upstream], [
  'git-debrebase import: declare upstream',
  'First breakwater merge.',
- '[git-debrebase breakwater: declare upstream]'
+ '[git-debrebase anchor: declare upstream]'
                              ];
 
        # rebase the patch queue onto the new breakwater