delta: skip "empty delta" optimisation for non-general case (issue6006)
Non-general delta repository cannot delta against anything than prev. So even if
the delta to prev is empty we should use it.
This is similar to the change made in bafa1c4bb7a8.
Differential Revision: https://phab.mercurial-scm.org/D5201
$ cat >> $HGRCPATH <<EOF
> [extensions]
> drawdag=$TESTDIR/drawdag.py
> bruterebase=$TESTDIR/bruterebase.py
> [experimental]
> evolution.createmarkers=True
> evolution.allowunstable=True
> EOF
$ init() {
> N=`expr ${N:-0} + 1`
> cd $TESTTMP && hg init repo$N && cd repo$N
> hg debugdrawdag
> }
Source looks like "N"
$ init <<'EOS'
> C D
> |\|
> A B Z
> EOS
$ hg debugbruterebase 'all()-Z' Z
A: A':Z
B: B':Z
AB: A':Z B':Z
C: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents
AC: A':Z C':A'B
BC: B':Z C':B'A
ABC: A':Z B':Z C':A'B'
D: D':Z
AD: A':Z D':Z
BD: B':Z D':B'
ABD: A':Z B':Z D':B'
CD: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents
ACD: A':Z C':A'B D':Z
BCD: B':Z C':B'A D':B'
ABCD: A':Z B':Z C':A'B' D':B'
Moving backwards
$ init <<'EOS'
> C
> |\
> A B
> |
> Z
> EOS
$ hg debugbruterebase 'all()-Z' Z
B: B':Z
A:
BA: B':Z
C: ABORT: cannot rebase 3:b8d7149b562b without moving at least one of its parents
BC: B':Z C':B'A
AC:
BAC: B':Z C':B'A