diff -r 52781d57313d -r beed7ce61681 mercurial/changelog.py --- a/mercurial/changelog.py Sun Oct 06 23:36:51 2019 -0400 +++ b/mercurial/changelog.py Sun Oct 06 23:36:51 2019 -0400 @@ -27,6 +27,8 @@ stringutil, ) +from .revlogutils import sidedata as sidedatamod + _defaultextra = {b'branch': b'default'} @@ -676,6 +678,7 @@ _(b'the name \'%s\' is reserved') % branch ) sortedfiles = sorted(files) + sidedata = None if extra is not None: for name in ( b'p1copies', @@ -704,13 +707,25 @@ extra[b'filesadded'] = filesadded if filesremoved is not None: extra[b'filesremoved'] = filesremoved + elif self._copiesstorage == b'changeset-sidedata': + sidedata = {} + if p1copies is not None: + sidedata[sidedatamod.SD_P1COPIES] = p1copies + if p2copies is not None: + sidedata[sidedatamod.SD_P2COPIES] = p2copies + if filesadded is not None: + sidedata[sidedatamod.SD_FILESADDED] = filesadded + if filesremoved is not None: + sidedata[sidedatamod.SD_FILESREMOVED] = filesremoved if extra: extra = encodeextra(extra) parseddate = b"%s %s" % (parseddate, extra) l = [hex(manifest), user, parseddate] + sortedfiles + [b"", desc] text = b"\n".join(l) - return self.addrevision(text, transaction, len(self), p1, p2) + return self.addrevision( + text, transaction, len(self), p1, p2, sidedata=sidedata + ) def branchinfo(self, rev): """return the branch name and open/close state of a revision