compat: fix stablerange for mercurial 3.9
Lrudict.get change of api between mercurial 3.9 and mercurial 4.2. Bypass this
limitation by using lrudict.__getitem__ and catch the KeyError directly.
============================================Testingobsolescencemarkerspush:CasesB.3============================================Mercurialpushesobsolescencesmarkersrelevanttothe"pushed-set",thesetofallchangesetsthatrequestedtobe"in sync"afterthepush(eveniftheyarealreadyonbothside).Thistestbelongstoaseriesoftestscheckingsuchsetisproperlycomputedandapplied.Thisdoesnottests"obsmarkers"discoverycapabilities.CategoryB:pruningcaseTestCase3:Prunedchangesetonnon-pushedpartofthehistoryB.3Prunedchangesetonnon-pushedpartofthehistory======================================================..{{{..⊗C..|..○B..|◔A..|/..●O..}}}....Markerexistsfrom:....*C(prune)....Commandsrun:....*hgpush-rA....Expectedexchange:....*ø....Expectedexclude:....*chainfromBSetup-----$.$TESTDIR/testlib/exchange-obsmarker-util.shinitial$setupreposB.3creatingtestrepofortestcaseB.3-pulldest-main-pushdestcdinto`main`andproceedwithenvsetup$cdmain$mkcommitA$hgup--quiet0$mkcommitBcreatednewhead$mkcommitC$hgprune-qd'0 0'.$hglog-G--hiddenxe56289ab6378(draft):C|@35b183996678(draft):B||of5bc6836db60(draft):A|/oa9bdc8b26820(public):O$inspect_obsmarkersobsstorecontent================e56289ab6378dc752fd7965f8bf66b58bda740bd0{35b1839966785d5703a01607229eea932db42f87}(ThuJan0100:00:001970+0000){'user':'test'}obshashtree===========a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc040000000000000000000000000000000000000000f5bc6836db60e308a17ba08bf050154ba9c4fad7000000000000000000000000000000000000000035b1839966785d5703a01607229eea932db42f87631ab4cd02ffa1d144dc8f32a18be574076031e3e56289ab6378dc752fd7965f8bf66b58bda740bda37fa02ad96f2e8ecce7080e73cfe22af8e1b14fobshashrange============revnodeindexsizedepthobshash235b183996678022631ab4cd02ff1f5bc6836db60022000000000000235b183996678112631ab4cd02ff0a9bdc8b268200110000000000001f5bc6836db60112000000000000$cd..$cd..ActualTest-----------------------------------$dotestB.3A##RunningtestcaseB.3 # testing echange of "A" (f5bc6836db60) ## initial state # obstore: maine56289ab6378dc752fd7965f8bf66b58bda740bd0{35b1839966785d5703a01607229eea932db42f87}(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing "A" from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added1changesetswith1changesto1files##postpushstate#obstore:maine56289ab6378dc752fd7965f8bf66b58bda740bd0{35b1839966785d5703a01607229eea932db42f87}(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pulling "f5bc6836db60" from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded1changesetswith1changesto1files(run'hg update'togetaworkingcopy) ## post pull state # obstore: maine56289ab6378dc752fd7965f8bf66b58bda740bd0{35b1839966785d5703a01607229eea932db42f87}(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest