##// END OF EJS Templates
tests: demonstrate crash caused by pinning of non-existent mergestate node...
Martin von Zweigbergk -
r46115:5a555d6e stable
parent child Browse files
Show More
@@ -1790,3 +1790,44 b' Test issue 5783'
1790 d1b09fe3ad2b2a03e23a72f0c582e29a49570145 1a1a11184d2588af24e767e5335d5d9d07e8c550 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore', 'operation': 'amend', 'user': 'test'}
1790 d1b09fe3ad2b2a03e23a72f0c582e29a49570145 1a1a11184d2588af24e767e5335d5d9d07e8c550 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore', 'operation': 'amend', 'user': 'test'}
1791 1bfd8e3868f641e048b6667cd672c68932f26d00 79959ca316d5b27ac6be1dd0cfd0843a5b5412eb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore2', 'operation': 'amend', 'user': 'test'}
1791 1bfd8e3868f641e048b6667cd672c68932f26d00 79959ca316d5b27ac6be1dd0cfd0843a5b5412eb 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'note': 'Testing::Obsstore2', 'operation': 'amend', 'user': 'test'}
1792 $ cd ..
1792 $ cd ..
1793
1794 Test that pinning of revisions in broken mergestate doesn't cause crash
1795
1796 $ hg init pinning-broken-mergestate
1797 $ cd pinning-broken-mergestate
1798 $ echo a > file
1799 $ hg ci -Aqm first
1800 Create a pruned commit so pinning comes into play
1801 $ echo pruned > pruned
1802 $ hg ci -Aqm pruned
1803 $ hg co -q 0
1804 $ hg debugobsolete $(getid pruned)
1805 1 new obsolescence markers
1806 obsoleted 1 changesets
1807 Back up changelog, so we can restore it later after causing merge conflicts
1808 with it, thus ending up with mergestate that points to a non-existent commit
1809 $ cp .hg/store/00changelog.i .hg/store/00changelog.i.first
1810 $ echo b > file
1811 $ hg ci -qm second
1812 $ echo c > file
1813 $ hg co -m 0
1814 merging file
1815 warning: conflicts while merging file! (edit, then use 'hg resolve --mark')
1816 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
1817 use 'hg resolve' to retry unresolved file merges
1818 [1]
1819 $ mv -f .hg/store/00changelog.i.first .hg/store/00changelog.i
1820 The local node should now point to a non-existent commit
1821 $ hg debugmergestate
1822 local (working copy): b73b8c9a4ab4da89a5a35a6f10dfb13edc84ca37
1823 other (destination): f53e9479dce52f79c923908241fa54f7da90a7ad
1824 file: file (state "u")
1825 local path: file (hash 971c419dd609331343dee105fffd0f4608dc0bf2, flags "")
1826 ancestor path: file (node bc7ebe2d260cff30d2a39a130d84add36216f791)
1827 other path: file (node b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3)
1828 extra: ancestorlinknode = b73b8c9a4ab4da89a5a35a6f10dfb13edc84ca37
1829 BROKEN: We should be able to see the log (without the deleted commit, of course)
1830 $ hg log -G
1831 abort: unknown revision 'b73b8c9a4ab4da89a5a35a6f10dfb13edc84ca37'!
1832 [255]
1833 $ cd ..
General Comments 0
You need to be logged in to leave comments. Login now