chiark / gitweb /
Overwrite: Provide --overwrite=VERSION option
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 25 Sep 2016 13:48:41 +0000 (14:48 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 26 Sep 2016 00:36:22 +0000 (01:36 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
TODO.BRANCH
dgit
dgit.1

index 7d39b29c9506d4c1672e65e7eca63ed95b8704ea..141a3aab22f2257a0b2b0f28f6490d1ed48216cc 100644 (file)
@@ -1,14 +1,4 @@
 
- - in dopush (?), we need to sort out synthetic fast forard
-    this should not depend entirely on quilt mode
-    but will always be needed if quiltmode_splitbrain
-
-    We want a --overwrite=VERSION option which 1. adjusts
-    the version used above, and 2. does the same thing in any
-    quilt mode.  If no split brain it should make the pseudomerge
-    on the user's HEAD.
-
-
 SPLIT BRAIN
 
   * Check archive allegedly supports split brain mode before running
diff --git a/dgit b/dgit
index c0d2183138945b2181e590efeb324092ddeecf48..2bd938e5a1149017413ce7ee2d2015afe6c855e4 100755 (executable)
--- a/dgit
+++ b/dgit
@@ -4561,6 +4561,9 @@ sub parseopts () {
            } elsif (m/^--no-rm-on-error$/s) {
                push @ropts, $_;
                $rmonerror = 0;
+           } elsif (m/^--overwrite=(.*)$/s) {
+               push @ropts, $_;
+               $overwrite_version = $1;
            } elsif (m/^--(no-)?rm-old-changes$/s) {
                push @ropts, $_;
                $rmchanges = !$1;
diff --git a/dgit.1 b/dgit.1
index 87ad0fce4b8f589f38ec85d378567d632cf9ffca..8769f72332c8f9e84a68abb7cc96f0013c4f52a2 100644 (file)
--- a/dgit.1
+++ b/dgit.1
@@ -330,6 +330,28 @@ This can be useful with build, if you plan to commit later.  (dgit
 push will still ensure that the .dsc you upload and the git tree
 you push are identical, so this option won't make broken pushes.)
 .TP
+.BI --overwrite= previous-version
+Declare that even though your git branch is not a descendant of
+.IR previous-version
+according to the revision history, in fact, it really does contain
+all the (wanted) changes from that version.
+.I previous-version
+ought to be the version currently in the archive.
+
+dgit push will make a
+pseudo-merge (that is, something that looks like the result
+of git merge -s ours) to stitch the archive's version into your own
+git history, so that your push is a fast forward from the archive.
+
+This option is useful if you are the maintainer, and you have
+incorporated NMU changes into your own git workflow in way that
+doesn't make your branch a fast forward from the NMU.
+
+(In quilt mode
+.BR gbp ", " dpm " or " unpatched ,
+implying a split between the dgit view and the
+maintainer view, the pseudo-merge will appear only in the dgit view.)
+.TP
 .BI --deliberately- something
 Declare that you are deliberately doing
 .IR something .