comparison mercurial/copies.py @ 43231:30570a056fa8

sidedatacopies: only store an entry if it has values This will make for a shorter storage and help use to write faster code in simple case. This change already provided a speed boost for copy tracing. For example here is combined time of running copies tracing on a 6989 pairs of revision on the pypy repos: before: 771s after: 631s - 18% This also has a very positive impact on changelog size. For example here are the number for the `00changelog.d` file of pypy. before: 30449712 Bytes after: 24973718 Bytes - 18% This give an overall quite acceptable overhead for storing copies into the changelog: filelog-only: 23370586 sidedata: 24973718 Bytes + 7% Differential Revision: https://phab.mercurial-scm.org/D7068
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Wed, 02 Oct 2019 14:38:34 -0400
parents 069cbbb53cdf
children 32187ae9eeb3
comparison
equal deleted inserted replaced
43230:e51f5d06a99c 43231:30570a056fa8
888 p1copies, p2copies = filescopies 888 p1copies, p2copies = filescopies
889 p1copies = encodecopies(sortedfiles, p1copies) 889 p1copies = encodecopies(sortedfiles, p1copies)
890 p2copies = encodecopies(sortedfiles, p2copies) 890 p2copies = encodecopies(sortedfiles, p2copies)
891 filesadded = encodefileindices(sortedfiles, filesadded) 891 filesadded = encodefileindices(sortedfiles, filesadded)
892 filesremoved = encodefileindices(sortedfiles, filesremoved) 892 filesremoved = encodefileindices(sortedfiles, filesremoved)
893 sidedata[sidedatamod.SD_P1COPIES] = p1copies 893 if p1copies:
894 sidedata[sidedatamod.SD_P2COPIES] = p2copies 894 sidedata[sidedatamod.SD_P1COPIES] = p1copies
895 sidedata[sidedatamod.SD_FILESADDED] = filesadded 895 if p2copies:
896 sidedata[sidedatamod.SD_FILESREMOVED] = filesremoved 896 sidedata[sidedatamod.SD_P2COPIES] = p2copies
897 if filesadded:
898 sidedata[sidedatamod.SD_FILESADDED] = filesadded
899 if filesremoved:
900 sidedata[sidedatamod.SD_FILESREMOVED] = filesremoved
897 return sidedata 901 return sidedata
898 902
899 903
900 def getsidedataadder(srcrepo, destrepo): 904 def getsidedataadder(srcrepo, destrepo):
901 def sidedatacompanion(revlog, rev): 905 def sidedatacompanion(revlog, rev):