diff --git a/hgext/rebase.py b/hgext/rebase.py --- a/hgext/rebase.py +++ b/hgext/rebase.py @@ -1244,6 +1244,9 @@ def pullrebase(orig, ui, repo, *args, ** # --source. if 'source' in opts: del opts['source'] + # revsprepull is the len of the repo, not revnum of tip. + destspace = list(repo.changelog.revs(start=revsprepull)) + opts['_destspace'] = destspace try: rebase(ui, repo, **opts) except error.NoMergeDestAbort: diff --git a/tests/test-rebase-pull.t b/tests/test-rebase-pull.t --- a/tests/test-rebase-pull.t +++ b/tests/test-rebase-pull.t @@ -311,3 +311,83 @@ pull --rebase update (no rebase) use pro | o 0: 'C1' + +Multiple pre-existing heads on the branch +----------------------------------------- + +Pull bring content, but nothing on the current branch, we should not consider +pre-existing heads. + + $ cd ../a + $ hg branch unrelatedbranch + marked working directory as branch unrelatedbranch + (branches are permanent and global, did you want a bookmark?) + $ echo B1 > B1 + $ hg commit -Am B1 + adding B1 + $ cd ../c + $ hg up 'desc(L2)' + 2 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg pull --rebase + pulling from $TESTTMP/a (glob) + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + nothing to rebase + +There is two local heads and we pull a third one. +The second local head should not confuse the `hg pull rebase`. + + $ hg up 'desc(R6)' + 1 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo M1 > M1 + $ hg commit -Am M1 + adding M1 + $ cd ../a + $ hg up 'desc(R6)' + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo R7 > R7 + $ hg commit -Am R7 + adding R7 + $ cd ../c + $ hg up 'desc(L2)' + 2 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ hg pull --rebase + pulling from $TESTTMP/a (glob) + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files (+1 heads) + rebasing 7:864e0a2d2614 "L1" + rebasing 8:6dc0ea5dcf55 "L2" + saved backup bundle to $TESTTMP/c/.hg/strip-backup/864e0a2d2614-2f72c89c-backup.hg (glob) + $ hg tglog + @ 12: 'L2' + | + o 11: 'L1' + | + o 10: 'R7' + | + | o 9: 'M1' + |/ + | o 8: 'B1' unrelatedbranch + |/ + o 7: 'R6' + | + o 6: 'R5' + | + o 5: 'R4' + | + o 4: 'R3' + | + o 3: 'R2' + | + o 2: 'R1' + | + o 1: 'C2' + | + o 0: 'C1' +