effectflag: fix content change detection for filtered revs
In some cases (like amended an obsolete changeset), computing the diff and
comparing them need to work with filtered revisions. We need to use unfiltered
change contexts to safely compute diffs.
============================================Testingobsolescencemarkerspush:CasesB.5============================================Mercurialpushesobsolescencesmarkersrelevanttothe"pushed-set",thesetofallchangesetsthatrequestedtobe"in sync"afterthepush(eveniftheyarealreadyonbothside).Thistestbelongstoaseriesoftestscheckingsuchsetisproperlycomputedandapplied.Thisdoesnottests"obsmarkers"discoverycapabilities.CategoryB:pruningcaseTestCase5:PushofachildrenofchangesetwhichsuccessorsisprunedB.5Pushofachildrenofchangesetwhichsuccessorsispruned==============================================================..ThiscaseMirrorA.4,withprunedchangesetsuccessors.....{{{..C◔..|..B⇠ø⇠⊗B'.. | |.. A ø⇠○ A'..|/..●..}}}....Markerexistfrom:....*`Aø⇠○A'`.. * `B ø⇠○ B'`..*chainfromB..*`B' is pruned`.... Command run:.... * hg push -r C.... Expected exchange:.... * chain from B.... Expected exclude:.... * `A ø⇠○ A'`..*`Bø⇠○B'`.. * `B'prune`Setup-----$.$TESTDIR/testlib/exchange-obsmarker-util.shinitial$setupreposB.5creatingtestrepofortestcaseB.5-pulldest-main-pushdestcdinto`main`andproceedwithenvsetup$cdmain$mkcommitA0$mkcommitB0$mkcommitC$hgup--quiet0$mkcommitA1creatednewhead$mkcommitB1$hgdebugobsolete--hidden`getid'desc(A0)'``getid'desc(A1)'`$hgdebugobsolete--hiddenaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`getid'desc(B0)'`$hgdebugobsolete--hidden`getid'desc(B0)'``getid'desc(B1)'`$hgprune-qd'0 0''desc(B1)'$hglog-G--hiddenx069b05c3876d(draft):B1|@e5ea8f9c7314(draft):A1||o1d0f3cd25300(draft):C|||x6e72f0a95b5e(draft):B0|||x28b51eb45704(draft):A0|/oa9bdc8b26820(public):O$inspect_obsmarkersobsstorecontent================28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'}6e72f0a95b5e01a7504743aa941f69cb1fbef8b0069b05c3876d56f62895e853a501ea58ea85f68d0(ThuJan0100:00:001970+0000){'user':'test'}069b05c3876d56f62895e853a501ea58ea85f68d0{e5ea8f9c73143125d36658e90ef70c6d2027a5b7}(ThuJan0100:00:001970+0000){'user':'test'}obshashtree===========a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04000000000000000000000000000000000000000028b51eb45704506b5c603decd6bf7ac5e0f6a52f00000000000000000000000000000000000000006e72f0a95b5e01a7504743aa941f69cb1fbef8b013bd00d88332fcd3fe634ed42f9d35c9cfc063981d0f3cd253006f014c7687a78abbc9287db4101d01d985a82467333a4de7a5b4e8a0de3286f8bda8e5ea8f9c73143125d36658e90ef70c6d2027a5b7d2b1159bcf3694aabc3674785b1859544c35357d069b05c3876d56f62895e853a501ea58ea85f68da07163ee7e7cda4065f7593715b7b12f833f7065obshashrange============revnodeindexsizedepthobshash31d0f3cd2530004400000000000031d0f3cd25300224000000000000128b51eb457040220000000000004e5ea8f9c7314022d2b1159bcf3631d0f3cd25300314000000000000128b51eb4570411200000000000026e72f0a95b5e21313bd00d883320a9bdc8b268200110000000000004e5ea8f9c7314112d2b1159bcf36$cd..$cd..ActualTest(explicitpushversion)-----------------------------------$dotestB.5C-f ## Running testcase B.5 # testing echange of "C" (1d0f3cd25300) ## initial state # obstore: main069b05c3876d56f62895e853a501ea58ea85f68d0{e5ea8f9c73143125d36658e90ef70c6d2027a5b7}(ThuJan0100:00:001970+0000){'user':'test'}28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}6e72f0a95b5e01a7504743aa941f69cb1fbef8b0069b05c3876d56f62895e853a501ea58ea85f68d0(ThuJan0100:00:001970+0000){'user':'test'}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing "C" from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added3changesetswith3changesto3filesremote:1newobsolescencemarkers##postpushstate#obstore:main069b05c3876d56f62895e853a501ea58ea85f68d0{e5ea8f9c73143125d36658e90ef70c6d2027a5b7}(ThuJan0100:00:001970+0000){'user':'test'}28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}6e72f0a95b5e01a7504743aa941f69cb1fbef8b0069b05c3876d56f62895e853a501ea58ea85f68d0(ThuJan0100:00:001970+0000){'user':'test'}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling "1d0f3cd25300" from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded3changesetswith3changesto3files1newobsolescencemarkers(run'hg update'togetaworkingcopy) ## post pull state # obstore: main069b05c3876d56f62895e853a501ea58ea85f68d0{e5ea8f9c73143125d36658e90ef70c6d2027a5b7}(ThuJan0100:00:001970+0000){'user':'test'}28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}6e72f0a95b5e01a7504743aa941f69cb1fbef8b0069b05c3876d56f62895e853a501ea58ea85f68d0(ThuJan0100:00:001970+0000){'user':'test'}aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6e72f0a95b5e01a7504743aa941f69cb1fbef8b00(ThuJan0100:00:001970+0000){'user':'test'}