diff --git a/hgext3rd/perftweaks.py b/hgext3rd/perftweaks.py --- a/hgext3rd/perftweaks.py +++ b/hgext3rd/perftweaks.py @@ -287,6 +287,8 @@ def _trackrebasesize(orig, self, dest, rebaseset): result = orig(self, dest, rebaseset) + if dest is None: + return result # The code assumes the rebase source is roughly a linear stack within a # single feature branch, and there is only one destination. If that is not diff --git a/tests/test-perftweaks-remotenames.t b/tests/test-perftweaks-remotenames.t --- a/tests/test-perftweaks-remotenames.t +++ b/tests/test-perftweaks-remotenames.t @@ -5,7 +5,9 @@ > ssh=python "$TESTDIR/dummyssh" > [extensions] > perftweaks=$TESTDIR/../hgext3rd/perftweaks.py + > tweakdefaults=$TESTDIR/../hgext3rd/tweakdefaults.py > remotenames= + > rebase= > EOF $ hg init master @@ -35,3 +37,13 @@ default/master 0:cb9a9f314b8b $ cat .hg/remotenames cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b bookmarks default/master + + $ hg pull --rebase -d master + pulling from ssh://user@dummy/master + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + (run 'hg update' to get a working copy) + nothing to rebase - working directory parent is also destination