obslog: make content and description patches available to templater
The code was repeatedly calling fm.write() with the same field
("patch" and "descdiff"). I think that led to the value constantly
getting replaced, so when it was used in a template (as {patch} or
{descdiff}), it would only get the last value, which was always an
empty string.
This patch fixes it by writing the full patch to a temporary buffer
and then assigning the whole patch to the formatter field.
============================================Testingobsolescencemarkerspush:CasesA.6============================================Mercurialpushesobsolescencesmarkersrelevanttothe"pushed-set",thesetofallchangesetsthatrequestedtobe"in sync"afterthepush(eveniftheyarealreadyonbothside).Thistestbelongstoaseriesoftestscheckingsuchsetisproperlycomputedandapplied.Thisdoesnottests"obsmarkers"discoverycapabilities.CategoryA:simplecasesTestCase6:newmarkersbetweenchangesetsalreadyknownonbothsideVariants:# a: explicit push# b: bare pushA.6newmarkersbetweenchangesetsalreadyknownonbothside==============================================================..{{{..A◕⇠●B..|/..●O..}}}....Markerexistfrom:....*`A◕⇠●B`....Commandruns:....*hgpush-rB..*hgpush....Expectedexchange:....*`A◕⇠●B`Setup-----$.$TESTDIR/testlib/exchange-obsmarker-util.shinitial$setupreposA.6creatingtestrepofortestcaseA.6-pulldest-main-pushdestcdinto`main`andproceedwithenvsetup$cdmain$mkcommitA0$hgupdate-q0$mkcommitA1creatednewheadmakebothchangesetknowninremote$hgpush-qf../pushdest$hgpush-qf../pulldestcreateamarkerafterthis$hgdebugobsolete`getid'desc(A0)'``getid'desc(A1)'`1newobsolescencemarkersobsoleted1changesets$hglog-G--hidden@e5ea8f9c7314(draft):A1||x28b51eb45704(draft):A0|/oa9bdc8b26820(public):O$inspect_obsmarkersobsstorecontent================28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}obshashtree===========a9bdc8b26820b1b87d585b82eb0ceb4a2ecdbc04000000000000000000000000000000000000000028b51eb45704506b5c603decd6bf7ac5e0f6a52f0000000000000000000000000000000000000000e5ea8f9c73143125d36658e90ef70c6d2027a5b73bc2ee626e11a7cf8fee7a66d069271e17d5a597obshashrange============revnodeindexsizedepthobshash2e5ea8f9c73140223bc2ee626e110a9bdc8b268200110000000000002e5ea8f9c73141123bc2ee626e11$cd..$cd..$cp-RA.6A.6.a$cp-RA.6A.6.bActualTest(explicitpushversion)-----------------------------------$dotestA.6.aA1##RunningtestcaseA.6.a # testing echange of "A1" (e5ea8f9c7314) ## initial state # obstore: main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing "A1" from main to pushdestpushingtopushdestsearchingforchangesnochangesfoundremote:1newobsolescencemarkersremote:obsoleted1changesets##postpushstate#obstore:main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling "e5ea8f9c7314" from main into pulldestpullingfrommainnochangesfound1newobsolescencemarkersobsoleted1changesets##postpullstate#obstore:main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}ActualTest(barepushversion)-------------------------------$dotestA.6.b ## Running testcase A.6.b ## initial state # obstore: main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest # obstore: pulldest ## pushing from main to pushdestpushingtopushdestsearchingforchangesnochangesfoundremote:1newobsolescencemarkersremote:obsoleted1changesets##postpushstate#obstore:main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest ## pulling from main into pulldestpullingfrommainsearchingforchangesnochangesfound1newobsolescencemarkersobsoleted1changesets##postpullstate#obstore:main28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pushdest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'} # obstore: pulldest28b51eb45704506b5c603decd6bf7ac5e0f6a52fe5ea8f9c73143125d36658e90ef70c6d2027a5b70(ThuJan0100:00:001970+0000){'user':'test'}