Mercurial > hg
changeset 18615:e7b89b5127c2
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.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Sat, 09 Feb 2013 17:54:01 +0000 |
parents | b2586e2cc67a |
children | 35b4affe6fdd 43ffd0279876 |
files | mercurial/scmutil.py tests/test-obsolete.t |
diffstat | 2 files changed, 26 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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)
--- 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] + +