# HG changeset patch # User Gregory Szorc # Date 2018-08-04 01:40:41 # Node ID 227ebd88ce5e333fb8532b8cb7bd4e02961824dc # Parent 4a202bccafcf08bf0efbad4eb37dff83eb6088e6 changegroup: pull _fileheader out of cgpacker It doesn't need any state from the packer. Differential Revision: https://phab.mercurial-scm.org/D4138 diff --git a/mercurial/changegroup.py b/mercurial/changegroup.py --- a/mercurial/changegroup.py +++ b/mercurial/changegroup.py @@ -66,6 +66,10 @@ def closechunk(): """return a changegroup chunk header (string) for a zero-length chunk""" return struct.pack(">l", 0) +def _fileheader(path): + """Obtain a changegroup chunk header for a named path.""" + return chunkheader(len(path)) + path + def writechunks(ui, chunks, filename, vfs=None): """Write chunks to a file and return its filename. @@ -606,9 +610,6 @@ class cgpacker(object): return closechunk() - def _fileheader(self, fname): - return chunkheader(len(fname)) + fname - # Extracted both for clarity and for overriding in extensions. def _sortgroup(self, store, ischangelog, nodelist, lookup): """Sort nodes for change group and turn them into revnums.""" @@ -701,7 +702,7 @@ class cgpacker(object): if dir: assert self.version == b'03' - yield self._fileheader(dir) + yield _fileheader(dir) # TODO violates storage abstractions by assuming revlogs. dirlog = self._repo.manifestlog._revlog.dirlog(dir) @@ -981,7 +982,7 @@ class cgpacker(object): filenodes = self._prune(filerevlog, linkrevnodes, commonrevs) if filenodes: progress.update(i + 1, item=fname) - h = self._fileheader(fname) + h = _fileheader(fname) size = len(h) yield h for chunk in self.group(filenodes, filerevlog, False,