chiark / gitweb /
git-debrebase: maintain debrebase-last
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 25 Mar 2018 11:33:28 +0000 (12:33 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sat, 16 Jun 2018 15:07:00 +0000 (16:07 +0100)
This is mostly for the benefit of dgit(1), which wants to know whether
to run gdr to do quilt fixup.

Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
git-debrebase
git-debrebase.5.pod

index eddbf6b..54431a7 100755 (executable)
@@ -972,6 +972,7 @@ sub record_ffq_prev_deferred () {
     fproblems_maybe_bail();
 
     push @deferred_updates, "update $ffq_prev $currentval $git_null_obj";
+    push @deferred_updates, "delete $drlast";
     push @deferred_update_messages, "Recorded current head for preservation";
     return ('deferred', undef);
 }
@@ -1212,6 +1213,7 @@ sub cmd_stitch () {
            # ffq-prev is ahead of us, and the only tree changes it has
            # are possibly addition of things in debian/patches/.
            # Just wind forwards rather than making a pointless pseudomerge.
+           push @deferred_updates, "update $drlast $prev $git_null_obj";
            update_head_checkout $old_head, $prev, "stitch (fast forward)";
            return;
        }
@@ -1221,6 +1223,7 @@ sub cmd_stitch () {
        'Declare fast forward / record previous work',
         "[git-debrebase pseudomerge: stitch$prose]",
     ];
+    push @deferred_updates, "update $drlast $new_head $git_null_obj";
     update_head $old_head, $new_head, "stitch";
 }
 
@@ -1312,6 +1315,7 @@ sub cmd_convert_to_gbp () {
     };
     if (defined $ffq) {
        push @deferred_updates, "delete $ffq";
+       push @deferred_updates, "delete $drlast";
     }
     update_head_checkout $head, $out, "convert to gbp (v0)";
     print <<END or die $!;
index fb9cff2..dce648e 100644 (file)
@@ -257,6 +257,12 @@ the interchange and breakwater branches may be identical,
 in which case the unstitched branch is fast forward
 from the interchange branch and no pseudomerge is needed.
 
+When ffq-prev is not present,
+C<refs/debrebase-last/B> records some ancestor of refs/B,
+(usually, the result of last stitch).
+This can be used to quickly determine whether refs/B
+is being maintained in git-debrebase form.
+
 =head1 OTHER MERGES
 
 Note that the representation described here does not permit
@@ -304,7 +310,8 @@ or both.
 =item Launder branch
 
 Record the previous tip in ffq-prev,
-if we were stitched before.
+if we were stitched before
+(and delete debrebase-last).
 
 Reorganise the current branch so that the packaging
 changes come first,
@@ -340,7 +347,8 @@ Make a pseudomerge,
 whose contributing parent to is the unstitched branch
 and
 whose overwritten parent is ffq-prev,
-consuming ffq-prev in the process.
+consuming ffq-prev in the process
+(and writing debrebase-last instead).
 Ideally the contributing parent would be a laundered branch,
 or perhaps a laundered branch with a quilt patch addition commit.