Show More
@@ -194,6 +194,7 b' def strip(ui, repo, nodelist, backup=Tru' | |||
|
194 | 194 | if not repo.ui.verbose: |
|
195 | 195 | repo.ui.popbuffer() |
|
196 | 196 | f.close() |
|
197 | repo._phasecache.invalidate() | |
|
197 | 198 | |
|
198 | 199 | for m in updatebm: |
|
199 | 200 | bm[m] = repo[newbmtarget].node() |
@@ -838,6 +838,41 b' strip backup content' | |||
|
838 | 838 | date: Thu Jan 01 00:00:00 1970 +0000 |
|
839 | 839 | summary: mergeCD |
|
840 | 840 | |
|
841 | Check that the phase cache is properly invalidated after a strip with bookmark. | |
|
842 | ||
|
843 | $ cat > ../stripstalephasecache.py << EOF | |
|
844 | > from mercurial import extensions, localrepo | |
|
845 | > def transactioncallback(orig, repo, desc, *args, **kwargs): | |
|
846 | > def test(transaction): | |
|
847 | > # observe cache inconsistency | |
|
848 | > try: | |
|
849 | > [repo.changelog.node(r) for r in repo.revs("not public()")] | |
|
850 | > except IndexError: | |
|
851 | > repo.ui.status("Index error!\n") | |
|
852 | > transaction = orig(repo, desc, *args, **kwargs) | |
|
853 | > # warm up the phase cache | |
|
854 | > list(repo.revs("not public()")) | |
|
855 | > if desc != 'strip': | |
|
856 | > transaction.addpostclose("phase invalidation test", test) | |
|
857 | > return transaction | |
|
858 | > def extsetup(ui): | |
|
859 | > extensions.wrapfunction(localrepo.localrepository, "transaction", | |
|
860 | > transactioncallback) | |
|
861 | > EOF | |
|
862 | $ hg up -C 2 | |
|
863 | 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
|
864 | $ echo k > k | |
|
865 | $ hg add k | |
|
866 | $ hg commit -m commitK | |
|
867 | $ echo l > l | |
|
868 | $ hg add l | |
|
869 | $ hg commit -m commitL | |
|
870 | $ hg book -r tip blah | |
|
871 | $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py | |
|
872 | 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
|
873 | saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg (glob) | |
|
874 | $ hg up -C 1 | |
|
875 | 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
|
841 | 876 | |
|
842 | 877 | Error during post-close callback of the strip transaction |
|
843 | 878 | (They should be gracefully handled and reported) |
General Comments 0
You need to be logged in to leave comments.
Login now