tests: make sure we don't result in commit messages conflict
Upcoming patches will introduce functionality of merging commit messages while
resolving content divergence which can lead to conflicts.
We don't want to test the conflicts scenario here, so let's make sure there are
no conflicts of commit messages in this test.
============================================Testingobsolescencemarkerspush:CasesA.1============================================Mercurialpushesobsolescencesmarkersrelevanttothe"pushed-set",thesetofallchangesetsthatrequestedtobe"in sync"afterthepush(eveniftheyarealreadyonbothside).Thistestbelongstoaseriesoftestscheckingsuchsetisproperlycomputedandapplied.Thisdoesnottests"obsmarkers"discoverycapabilities.CategoryA:simplecasesTestCase1:pushingasingleheadSubcases:# A.1.1 pushing a single head (2 variants)# A.1.2 pushing multiple changesets into a single head (2 variants)Case:A.1.1pushingasinglehead=================================....{{{..⇠◔A..|..●O..}}}....Markerexistsfrom:....*A....Commandsrun:....*hgpush-rA..*hgpush....Expectedexchange:....*chainfromASetup-----$.$TESTDIR/testlib/exchange-obsmarker-util.shinitial$setupreposA.1.1creatingtestrepofortestcaseA.1.1-pulldest-main-pushdestcdinto`main`andproceedwithenvsetup$cdmain$mkcommitA$hgdebugobsoleteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`getid'desc(A)'`$hglog-G@f5bc6836db60(draft):A|oa9bdc8b26820(public):O$inspect_obsmarkersobsstorecontent================aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}obshashtree===========a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc040000000000000000000000000000000000000000f5bc6836db60e308a17ba08bf050154ba9c4fad750656e04a95ecdfed94659dd61f663b2caa55e98obshashrange============revnodeindexsizedepthobshash1f5bc6836db6002250656e04a95e0a9bdc8b268200110000000000001f5bc6836db6011250656e04a95e$cd..$cd..setupbothvariants$cp-RA.1.1A.1.1.a$cp-RA.1.1A.1.1.bVarianta:push-rA--------------------$dotestA.1.1.aA##RunningtestcaseA.1.1.a#testingechangeof"A"(f5bc6836db60) ## initial state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing "A" from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added1changesetswith1changesto1filesremote:1newobsolescencemarkers##postpushstate#obstore:mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling "f5bc6836db60" from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded1changesetswith1changesto1files1newobsolescencemarkersnewchangesetsf5bc6836db60(run'hg update'togetaworkingcopy) ## post pull state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}Variantb:push---------------$dotestA.1.1.b##RunningtestcaseA.1.1.b##initialstate # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added1changesetswith1changesto1filesremote:1newobsolescencemarkers##postpushstate#obstore:mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded1changesetswith1changesto1files1newobsolescencemarkersnewchangesetsf5bc6836db60(run'hg update'togetaworkingcopy) ## post pull state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}A.1.2pushingmultiplechangesetsintoasinglehead====================================================..{{{..◔B..|..⇠◔A..|..●O..}}}....Markerexistfrom:....*A....Commandrun:....*hgpush-rB..*hgpush....Expectedexchange:....*chainfromASetup-----initial$setupreposA.1.2creatingtestrepofortestcaseA.1.2-pulldest-main-pushdestcdinto`main`andproceedwithenvsetup$cdmain$mkcommitA$mkcommitB$hglog-G@f6fbb35d8ac9(draft):B|of5bc6836db60(draft):A|oa9bdc8b26820(public):O$hgdebugobsoleteaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa`getid'desc(A)'`$inspect_obsmarkersobsstorecontent================aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}obshashtree===========a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc040000000000000000000000000000000000000000f5bc6836db60e308a17ba08bf050154ba9c4fad750656e04a95ecdfed94659dd61f663b2caa55e98f6fbb35d8ac958bbe70035e4c789c18471cdc0af9cfa25b36856aa720419146abddd011cf87d368cobshashrange============revnodeindexsizedepthobshash2f6fbb35d8ac90330000000000001f5bc6836db6002250656e04a95e0a9bdc8b268200110000000000001f5bc6836db6011250656e04a95e2f6fbb35d8ac9213000000000000$cd..$cd..setupbothvariants$cp-RA.1.2A.1.2.a$cp-RA.1.2A.1.2.bVarianta:push-rA--------------------$dotestA.1.2.aB##RunningtestcaseA.1.2.a#testingechangeof"B"(f6fbb35d8ac9) ## initial state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing "B" from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added2changesetswith2changesto2filesremote:1newobsolescencemarkers##postpushstate#obstore:mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling "f6fbb35d8ac9" from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded2changesetswith2changesto2files1newobsolescencemarkersnewchangesetsf5bc6836db60:f6fbb35d8ac9(run'hg update'togetaworkingcopy) ## post pull state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}Variantb:push---------------$dotestA.1.2.b##RunningtestcaseA.1.2.b##initialstate # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing from main to pushdestpushingtopushdestsearchingforchangesremote:addingchangesetsremote:addingmanifestsremote:addingfilechangesremote:added2changesetswith2changesto2filesremote:1newobsolescencemarkers##postpushstate#obstore:mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling from main into pulldestpullingfrommainsearchingforchangesaddingchangesetsaddingmanifestsaddingfilechangesadded2changesetswith2changesto2files1newobsolescencemarkersnewchangesetsf5bc6836db60:f6fbb35d8ac9(run'hg update'togetaworkingcopy) ## post pull state # obstore: mainaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldestaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaf5bc6836db60e308a17ba08bf050154ba9c4fad70(ThuJan0100:00:001970+0000){'user':'test'}