# HG changeset patch # User Pierre-Yves David # Date 1360432441 0 # Node ID e7b89b5127c2607bcaedf7c2fb0ea525df526ea6 # Parent b2586e2cc67ad7d446cdf8a78baccd34d5fa195f outgoing: fix possible filtering crash in outgoing (issue3814) If there is no outgoiing changesets but we have filtered revision in outgoing.excluded We run into a filtering related crash. The excluded revision should not be there in the first place but discovery need cleanup in default, not stable. diff -r b2586e2cc67a -r e7b89b5127c2 mercurial/scmutil.py --- a/mercurial/scmutil.py Sat Feb 09 15:39:22 2013 -0600 +++ b/mercurial/scmutil.py Sat Feb 09 17:54:01 2013 +0000 @@ -18,6 +18,10 @@ secretlist = [] if excluded: for n in excluded: + if n not in repo: + # discovery should not have included the filtered revision, + # we have to explicitly exclude it until discovery is cleanup. + continue ctx = repo[n] if ctx.phase() >= phases.secret and not ctx.extinct(): secretlist.append(n) diff -r b2586e2cc67a -r e7b89b5127c2 tests/test-obsolete.t --- a/tests/test-obsolete.t Sat Feb 09 15:39:22 2013 -0600 +++ b/tests/test-obsolete.t Sat Feb 09 17:54:01 2013 +0000 @@ -865,3 +865,25 @@ $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS #endif + +This test issue 3814 + +(nothing to push but locally hidden changeset) + + $ cd .. + $ hg init repo-issue3814 + $ cd repo-issue3805 + $ hg push -r 3816541e5485 ../repo-issue3814 + pushing to ../repo-issue3814 + searching for changes + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 1 files + $ hg out ../repo-issue3814 + comparing with ../repo-issue3814 + searching for changes + no changes found + [1] + +