diff --git a/hgext/shelve.py b/hgext/shelve.py index 8a021cd38719a4d4729027e44b5e0d9ea1144174_aGdleHQvc2hlbHZlLnB5..99c4b8f79324ad2ca00bf08228c87a2b40cec2af_aGdleHQvc2hlbHZlLnB5 100644 --- a/hgext/shelve.py +++ b/hgext/shelve.py @@ -610,7 +610,7 @@ # but it doesn't update the inmemory structures, so addchangegroup # hooks still fire and try to operate on the missing commits. # Clean up manually to prevent this. - repo.changelog.strip(oldtiprev, tr) + repo.unfiltered().changelog.strip(oldtiprev, tr) unshelvecleanup(ui, repo, basename, opts) finally: diff --git a/tests/test-shelve.t b/tests/test-shelve.t index 8a021cd38719a4d4729027e44b5e0d9ea1144174_dGVzdHMvdGVzdC1zaGVsdmUudA==..99c4b8f79324ad2ca00bf08228c87a2b40cec2af_dGVzdHMvdGVzdC1zaGVsdmUudA== 100644 --- a/tests/test-shelve.t +++ b/tests/test-shelve.t @@ -520,4 +520,23 @@ $ hg status A d +test bug 4073 we need to enable obsolete markers for it + + $ cat > ../obs.py << EOF + > import mercurial.obsolete + > mercurial.obsolete._enabled = True + > EOF + $ echo '[extensions]' >> $HGRCPATH + $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH + $ hg shelve + shelved as default + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg debugobsolete `hg --debug id -i -r 1` + $ hg unshelve + unshelving change 'default' + adding changesets + adding manifests + adding file changes + added 1 changesets with 1 changes to 2 files (+1 heads) + $ cd ..