comparison mercurial/changegroup.py @ 38979:6d726d1b08cb

changegroup: record changelogdone after fully consuming its data Setting this as a side-effect of calling _close() is wonky. There's only one group for changelog data. So we can wait until after all data has been emitted before recording it. Differential Revision: https://phab.mercurial-scm.org/D4136
author Gregory Szorc <gregory.szorc@gmail.com>
date Fri, 03 Aug 2018 18:31:00 -0700
parents d2ab0db89465
children 4a202bccafcf
comparison
equal deleted inserted replaced
38978:d2ab0db89465 38979:6d726d1b08cb
605 # Ellipses serving mode. 605 # Ellipses serving mode.
606 self._clrevtolocalrev.clear() 606 self._clrevtolocalrev.clear()
607 if self._nextclrevtolocalrev is not None: 607 if self._nextclrevtolocalrev is not None:
608 self._clrevtolocalrev = self._nextclrevtolocalrev 608 self._clrevtolocalrev = self._nextclrevtolocalrev
609 self._nextclrevtolocalrev = None 609 self._nextclrevtolocalrev = None
610 self._changelogdone = True
611 610
612 return closechunk() 611 return closechunk()
613 612
614 def _fileheader(self, fname): 613 def _fileheader(self, fname):
615 return chunkheader(len(fname)) + fname 614 return chunkheader(len(fname)) + fname
727 for chunk in chunks: 726 for chunk in chunks:
728 size += len(chunk) 727 size += len(chunk)
729 yield chunk 728 yield chunk
730 729
731 self._verbosenote(_('%8.i (changelog)\n') % size) 730 self._verbosenote(_('%8.i (changelog)\n') % size)
731
732 self._changelogdone = True
732 733
733 clrevorder = clstate['clrevorder'] 734 clrevorder = clstate['clrevorder']
734 mfs = clstate['mfs'] 735 mfs = clstate['mfs']
735 changedfiles = clstate['changedfiles'] 736 changedfiles = clstate['changedfiles']
736 737