- - 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
} 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;
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 .