# HG changeset patch # User Pierre-Yves David # Date 2021-05-28 22:11:12 # Node ID 865c260d7163a604a54b96159351f3c7edb06b85 # Parent c252631500e439b8a890eac5f524b9d72873d102 revlog: add docket method to request new content files If we want to write content into new files, we need to be able to ask for them. Differential Revision: https://phab.mercurial-scm.org/D10867 diff --git a/mercurial/revlogutils/docket.py b/mercurial/revlogutils/docket.py --- a/mercurial/revlogutils/docket.py +++ b/mercurial/revlogutils/docket.py @@ -173,6 +173,15 @@ class RevlogDocket(object): self._index_uuid = make_uid() return b"%s-%s.idx" % (self._radix, self._index_uuid) + def new_index_file(self): + """switch index file to a new UID + + The previous index UID is moved to the "older" list.""" + old = (self._index_uuid, self._index_end) + self._older_index_uuids.insert(0, old) + self._index_uuid = make_uid() + return self.index_filepath() + def data_filepath(self): """file path to the current data file associated to this docket""" # very simplistic version at first @@ -180,6 +189,15 @@ class RevlogDocket(object): self._data_uuid = make_uid() return b"%s-%s.dat" % (self._radix, self._data_uuid) + def new_data_file(self): + """switch data file to a new UID + + The previous data UID is moved to the "older" list.""" + old = (self._data_uuid, self._data_end) + self._older_data_uuids.insert(0, old) + self._data_uuid = make_uid() + return self.data_filepath() + def sidedata_filepath(self): """file path to the current sidedata file associated to this docket""" # very simplistic version at first @@ -187,6 +205,15 @@ class RevlogDocket(object): self._sidedata_uuid = make_uid() return b"%s-%s.sda" % (self._radix, self._sidedata_uuid) + def new_sidedata_file(self): + """switch sidedata file to a new UID + + The previous sidedata UID is moved to the "older" list.""" + old = (self._sidedata_uuid, self._sidedata_end) + self._older_sidedata_uuids.insert(0, old) + self._sidedata_uuid = make_uid() + return self.sidedata_filepath() + @property def index_end(self): return self._index_end