mercurial/metadata.py
changeset 45734 53c265a6fc83
parent 45728 232c88dd89e3
child 45735 edf4fa06df94
equal deleted inserted replaced
45733:ee3fd9021fac 45734:53c265a6fc83
   801 
   801 
   802 
   802 
   803 def _getsidedata(srcrepo, rev):
   803 def _getsidedata(srcrepo, rev):
   804     ctx = srcrepo[rev]
   804     ctx = srcrepo[rev]
   805     files = compute_all_files_changes(ctx)
   805     files = compute_all_files_changes(ctx)
   806     return encode_files_sidedata(files)
   806     return encode_files_sidedata(files), files.has_copies_info
   807 
   807 
   808 
   808 
   809 def getsidedataadder(srcrepo, destrepo):
   809 def getsidedataadder(srcrepo, destrepo):
   810     use_w = srcrepo.ui.configbool(b'experimental', b'worker.repository-upgrade')
   810     use_w = srcrepo.ui.configbool(b'experimental', b'worker.repository-upgrade')
   811     if pycompat.iswindows or not use_w:
   811     if pycompat.iswindows or not use_w:
   879     # looking for. For example, if we need the sidedatamap for 42, and 43 is
   879     # looking for. For example, if we need the sidedatamap for 42, and 43 is
   880     # received, when shelve 43 for later use.
   880     # received, when shelve 43 for later use.
   881     staging = {}
   881     staging = {}
   882 
   882 
   883     def sidedata_companion(revlog, rev):
   883     def sidedata_companion(revlog, rev):
   884         sidedata = {}
   884         data = {}, False
   885         if util.safehasattr(revlog, b'filteredrevs'):  # this is a changelog
   885         if util.safehasattr(revlog, b'filteredrevs'):  # this is a changelog
   886             # Is the data previously shelved ?
   886             # Is the data previously shelved ?
   887             sidedata = staging.pop(rev, None)
   887             sidedata = staging.pop(rev, None)
   888             if sidedata is None:
   888             if sidedata is None:
   889                 # look at the queued result until we find the one we are lookig
   889                 # look at the queued result until we find the one we are lookig
   890                 # for (shelve the other ones)
   890                 # for (shelve the other ones)
   891                 r, sidedata = sidedataq.get()
   891                 r, data = sidedataq.get()
   892                 while r != rev:
   892                 while r != rev:
   893                     staging[r] = sidedata
   893                     staging[r] = data
   894                     r, sidedata = sidedataq.get()
   894                     r, sidedata = sidedataq.get()
   895             tokens.release()
   895             tokens.release()
       
   896         sidedataq, has_copies_info = data
   896         return False, (), sidedata
   897         return False, (), sidedata
   897 
   898 
   898     return sidedata_companion
   899     return sidedata_companion
   899 
   900 
   900 
   901 
   904     It just compute it in the same thread on request"""
   905     It just compute it in the same thread on request"""
   905 
   906 
   906     def sidedatacompanion(revlog, rev):
   907     def sidedatacompanion(revlog, rev):
   907         sidedata = {}
   908         sidedata = {}
   908         if util.safehasattr(revlog, 'filteredrevs'):  # this is a changelog
   909         if util.safehasattr(revlog, 'filteredrevs'):  # this is a changelog
   909             sidedata = _getsidedata(srcrepo, rev)
   910             sidedata, has_copies_info = _getsidedata(srcrepo, rev)
   910         return False, (), sidedata
   911         return False, (), sidedata
   911 
   912 
   912     return sidedatacompanion
   913     return sidedatacompanion
   913 
   914 
   914 
   915