comparison mercurial/localrepo.py @ 24914:cb144bfc61ea

localrepo: make requirements always be a set in localrepo.__init__ The init function used to create a local list, and then convert it to a set before assigning it as a data attribute. This change simplifies the function by having it always be a set, requiring no conversion.
author Drew Gottlieb <drgott@google.com>
date Tue, 21 Apr 2015 17:16:10 -0700
parents e3a928bd1cd4
children 1c40408770f7
comparison
equal deleted inserted replaced
24913:e3a928bd1cd4 24914:cb144bfc61ea
240 if not self.vfs.isdir(): 240 if not self.vfs.isdir():
241 if create: 241 if create:
242 if not self.wvfs.exists(): 242 if not self.wvfs.exists():
243 self.wvfs.makedirs() 243 self.wvfs.makedirs()
244 self.vfs.makedir(notindexed=True) 244 self.vfs.makedir(notindexed=True)
245 requirements = self._baserequirements(create) 245 requirements = set(self._baserequirements(create))
246 if self.ui.configbool('format', 'usestore', True): 246 if self.ui.configbool('format', 'usestore', True):
247 self.vfs.mkdir("store") 247 self.vfs.mkdir("store")
248 requirements.append("store") 248 requirements.add("store")
249 if self.ui.configbool('format', 'usefncache', True): 249 if self.ui.configbool('format', 'usefncache', True):
250 requirements.append("fncache") 250 requirements.add("fncache")
251 if self.ui.configbool('format', 'dotencode', True): 251 if self.ui.configbool('format', 'dotencode', True):
252 requirements.append('dotencode') 252 requirements.add('dotencode')
253 # create an invalid changelog 253 # create an invalid changelog
254 self.vfs.append( 254 self.vfs.append(
255 "00changelog.i", 255 "00changelog.i",
256 '\0\0\0\2' # represents revlogv2 256 '\0\0\0\2' # represents revlogv2
257 ' dummy changelog to prevent using the old repo layout' 257 ' dummy changelog to prevent using the old repo layout'
258 ) 258 )
259 if self.ui.configbool('format', 'generaldelta', False): 259 if self.ui.configbool('format', 'generaldelta', False):
260 requirements.append("generaldelta") 260 requirements.add("generaldelta")
261 if self.ui.configbool('experimental', 'manifestv2', False): 261 if self.ui.configbool('experimental', 'manifestv2', False):
262 requirements.append("manifestv2") 262 requirements.add("manifestv2")
263 requirements = set(requirements)
264 else: 263 else:
265 raise error.RepoError(_("repository %s not found") % path) 264 raise error.RepoError(_("repository %s not found") % path)
266 elif create: 265 elif create:
267 raise error.RepoError(_("repository %s already exists") % path) 266 raise error.RepoError(_("repository %s already exists") % path)
268 else: 267 else:
1826 util.bytecount(total_bytes / elapsed))) 1825 util.bytecount(total_bytes / elapsed)))
1827 1826
1828 # new requirements = old non-format requirements + 1827 # new requirements = old non-format requirements +
1829 # new format-related 1828 # new format-related
1830 # requirements from the streamed-in repository 1829 # requirements from the streamed-in repository
1831 requirements.update(set(self.requirements) - self.supportedformats) 1830 requirements.update(self.requirements - self.supportedformats)
1832 self._applyrequirements(requirements) 1831 self._applyrequirements(requirements)
1833 self._writerequirements() 1832 self._writerequirements()
1834 1833
1835 if rbranchmap: 1834 if rbranchmap:
1836 rbheads = [] 1835 rbheads = []