mercurial/localrepo.py
changeset 43142 beed7ce61681
parent 43137 81efc4a295e7
child 43167 bca9d1a6c4c5
equal deleted inserted replaced
43141:52781d57313d 43142:beed7ce61681
   823     if b'revlogv1' in requirements or REVLOGV2_REQUIREMENT in requirements:
   823     if b'revlogv1' in requirements or REVLOGV2_REQUIREMENT in requirements:
   824         options.update(resolverevlogstorevfsoptions(ui, requirements, features))
   824         options.update(resolverevlogstorevfsoptions(ui, requirements, features))
   825     else:  # explicitly mark repo as using revlogv0
   825     else:  # explicitly mark repo as using revlogv0
   826         options[b'revlogv0'] = True
   826         options[b'revlogv0'] = True
   827 
   827 
   828     writecopiesto = ui.config(b'experimental', b'copies.write-to')
   828     if COPIESSDC_REQUIREMENT in requirements:
   829     copiesextramode = (b'changeset-only', b'compatibility')
   829         options[b'copies-storage'] = b'changeset-sidedata'
   830     if writecopiesto in copiesextramode:
   830     else:
   831         options[b'copies-storage'] = b'extra'
   831         writecopiesto = ui.config(b'experimental', b'copies.write-to')
       
   832         copiesextramode = (b'changeset-only', b'compatibility')
       
   833         if writecopiesto in copiesextramode:
       
   834             options[b'copies-storage'] = b'extra'
   832 
   835 
   833     return options
   836     return options
   834 
   837 
   835 
   838 
   836 def resolverevlogstorevfsoptions(ui, requirements, features):
   839 def resolverevlogstorevfsoptions(ui, requirements, features):
  1179         self._sparsesignaturecache = {}
  1182         self._sparsesignaturecache = {}
  1180         # Signature to cached matcher instance.
  1183         # Signature to cached matcher instance.
  1181         self._sparsematchercache = {}
  1184         self._sparsematchercache = {}
  1182 
  1185 
  1183         self._extrafilterid = repoview.extrafilter(ui)
  1186         self._extrafilterid = repoview.extrafilter(ui)
       
  1187 
       
  1188         self.filecopiesmode = None
       
  1189         if COPIESSDC_REQUIREMENT in self.requirements:
       
  1190             self.filecopiesmode = b'changeset-sidedata'
  1184 
  1191 
  1185     def _getvfsward(self, origfunc):
  1192     def _getvfsward(self, origfunc):
  1186         """build a ward for self.vfs"""
  1193         """build a ward for self.vfs"""
  1187         rref = weakref.ref(self)
  1194         rref = weakref.ref(self)
  1188 
  1195 
  2947         """
  2954         """
  2948 
  2955 
  2949         p1, p2 = ctx.p1(), ctx.p2()
  2956         p1, p2 = ctx.p1(), ctx.p2()
  2950         user = ctx.user()
  2957         user = ctx.user()
  2951 
  2958 
  2952         writecopiesto = self.ui.config(b'experimental', b'copies.write-to')
  2959         if self.filecopiesmode == b'changeset-sidedata':
  2953         writefilecopymeta = writecopiesto != b'changeset-only'
  2960             writechangesetcopy = True
  2954         writechangesetcopy = writecopiesto in (
  2961             writefilecopymeta = True
  2955             b'changeset-only',
  2962             writecopiesto = None
  2956             b'compatibility',
  2963         else:
  2957         )
  2964             writecopiesto = self.ui.config(b'experimental', b'copies.write-to')
       
  2965             writefilecopymeta = writecopiesto != b'changeset-only'
       
  2966             writechangesetcopy = writecopiesto in (
       
  2967                 b'changeset-only',
       
  2968                 b'compatibility',
       
  2969             )
  2958         p1copies, p2copies = None, None
  2970         p1copies, p2copies = None, None
  2959         if writechangesetcopy:
  2971         if writechangesetcopy:
  2960             p1copies = ctx.p1copies()
  2972             p1copies = ctx.p1copies()
  2961             p2copies = ctx.p2copies()
  2973             p2copies = ctx.p2copies()
  2962         filesadded, filesremoved = None, None
  2974         filesadded, filesremoved = None, None