# refs/ffqrebase-prev/BRANCH BRANCH may be refs/...; if not it means
# refs/ffqrebase-base/BRANCH refs/heads/BRANCH
# zero, one, or both of these may exist
-s
+#
# git-debrebase without start, if already started, is willing
# to strip pseudomerges provided that they overwrite exactly
# the previous HEAD
# xxxx is this right ? what matters is have we pushed
+# I think in fact the right answer is:
+# git-debrebase always strips out pseudomerges from its branch
+# a pseudomerge is put in at the time we want to push
+# at that time, we make a pseudomerge of the remote tracking
+# branch (if raw git) or the dgit view (if dgit)
+# for raw git git-ffqrebase, do want preciseley to record
+# value of remote tracking branch or our branch, on start, so we
+# overwrite only things we intend to
# the previous pseudomerge check for tags and remote branches ?
use strict;
return $unknown->("complex merge");
}
-sub walk ($$$;$$$) {
- my ($input, $pseudos_must_overwrite_this, $wantdebonly,
+sub walk ($$;$$$) {
+ my ($input, $wantdebonly,
$report, $depth, $report_anomaly, $report_only) = @_;
# go through commits backwards
# we generate two lists of commits to apply
$rewrite_from_here->();
next;
} elsif ($ty eq 'Pseudomerge') {
- if (defined $pseudos_must_overwrite_this &&
- !grep {
- is_fast_fwd $pseudos_must_overwrite_this, $_->{CommitId}
- },
- @{ $cl->{Overwritten} }) {
- $report_anomaly->($cl,
- "Pseudomerge should overwrite".
- " $pseudos_must_overwrite_this".
- " but does not do so");
- }
push @pseudomerges, $cl;
$rewrite_from_here->();
$cur = $ty->{Contributor};