diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py index b2586e2cc67ad7d446cdf8a78baccd34d5fa195f_bWVyY3VyaWFsL3NjbXV0aWwucHk=..e7b89b5127c2607bcaedf7c2fb0ea525df526ea6_bWVyY3VyaWFsL3NjbXV0aWwucHk= 100644 --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -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 --git a/tests/test-obsolete.t b/tests/test-obsolete.t index b2586e2cc67ad7d446cdf8a78baccd34d5fa195f_dGVzdHMvdGVzdC1vYnNvbGV0ZS50..e7b89b5127c2607bcaedf7c2fb0ea525df526ea6_dGVzdHMvdGVzdC1vYnNvbGV0ZS50 100644 --- a/tests/test-obsolete.t +++ b/tests/test-obsolete.t @@ -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] + +