Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 23853:0cc663e44258
localrepo: remove all internal uses of localrepo.sopener
It has been replaced with localrepo.svfs.
author | Angel Ezquerra <angel.ezquerra@gmail.com> |
---|---|
date | Sun, 11 Jan 2015 00:21:58 +0100 |
parents | 99e125626352 |
children | f6070d3a9cb8 |
comparison
equal
deleted
inserted
replaced
23852:99e125626352 | 23853:0cc663e44258 |
---|---|
313 caps.add('bundle2-exp=' + urllib.quote(capsblob)) | 313 caps.add('bundle2-exp=' + urllib.quote(capsblob)) |
314 return caps | 314 return caps |
315 | 315 |
316 def _applyrequirements(self, requirements): | 316 def _applyrequirements(self, requirements): |
317 self.requirements = requirements | 317 self.requirements = requirements |
318 self.sopener.options = dict((r, 1) for r in requirements | 318 self.svfs.options = dict((r, 1) for r in requirements |
319 if r in self.openerreqs) | 319 if r in self.openerreqs) |
320 chunkcachesize = self.ui.configint('format', 'chunkcachesize') | 320 chunkcachesize = self.ui.configint('format', 'chunkcachesize') |
321 if chunkcachesize is not None: | 321 if chunkcachesize is not None: |
322 self.sopener.options['chunkcachesize'] = chunkcachesize | 322 self.svfs.options['chunkcachesize'] = chunkcachesize |
323 maxchainlen = self.ui.configint('format', 'maxchainlen') | 323 maxchainlen = self.ui.configint('format', 'maxchainlen') |
324 if maxchainlen is not None: | 324 if maxchainlen is not None: |
325 self.sopener.options['maxchainlen'] = maxchainlen | 325 self.svfs.options['maxchainlen'] = maxchainlen |
326 | 326 |
327 def _writerequirements(self): | 327 def _writerequirements(self): |
328 reqfile = self.vfs("requires", "w") | 328 reqfile = self.vfs("requires", "w") |
329 for r in sorted(self.requirements): | 329 for r in sorted(self.requirements): |
330 reqfile.write("%s\n" % r) | 330 reqfile.write("%s\n" % r) |
412 # rely on obsstore class default when possible. | 412 # rely on obsstore class default when possible. |
413 kwargs = {} | 413 kwargs = {} |
414 if defaultformat is not None: | 414 if defaultformat is not None: |
415 kwargs['defaultformat'] = defaultformat | 415 kwargs['defaultformat'] = defaultformat |
416 readonly = not obsolete.isenabled(self, obsolete.createmarkersopt) | 416 readonly = not obsolete.isenabled(self, obsolete.createmarkersopt) |
417 store = obsolete.obsstore(self.sopener, readonly=readonly, | 417 store = obsolete.obsstore(self.svfs, readonly=readonly, |
418 **kwargs) | 418 **kwargs) |
419 if store and readonly: | 419 if store and readonly: |
420 # message is rare enough to not be translated | 420 # message is rare enough to not be translated |
421 msg = 'obsolete feature not enabled but %i markers found!\n' | 421 msg = 'obsolete feature not enabled but %i markers found!\n' |
422 self.ui.warn(msg % len(list(store))) | 422 self.ui.warn(msg % len(list(store))) |
423 return store | 423 return store |
424 | 424 |
425 @storecache('00changelog.i') | 425 @storecache('00changelog.i') |
426 def changelog(self): | 426 def changelog(self): |
427 c = changelog.changelog(self.sopener) | 427 c = changelog.changelog(self.svfs) |
428 if 'HG_PENDING' in os.environ: | 428 if 'HG_PENDING' in os.environ: |
429 p = os.environ['HG_PENDING'] | 429 p = os.environ['HG_PENDING'] |
430 if p.startswith(self.root): | 430 if p.startswith(self.root): |
431 c.readpending('00changelog.i.a') | 431 c.readpending('00changelog.i.a') |
432 return c | 432 return c |
433 | 433 |
434 @storecache('00manifest.i') | 434 @storecache('00manifest.i') |
435 def manifest(self): | 435 def manifest(self): |
436 return manifest.manifest(self.sopener) | 436 return manifest.manifest(self.svfs) |
437 | 437 |
438 @repofilecache('dirstate') | 438 @repofilecache('dirstate') |
439 def dirstate(self): | 439 def dirstate(self): |
440 warned = [0] | 440 warned = [0] |
441 def validate(node): | 441 def validate(node): |
780 return self.vfs.reljoin(self.root, f, *insidef) | 780 return self.vfs.reljoin(self.root, f, *insidef) |
781 | 781 |
782 def file(self, f): | 782 def file(self, f): |
783 if f[0] == '/': | 783 if f[0] == '/': |
784 f = f[1:] | 784 f = f[1:] |
785 return filelog.filelog(self.sopener, f) | 785 return filelog.filelog(self.svfs, f) |
786 | 786 |
787 def changectx(self, changeid): | 787 def changectx(self, changeid): |
788 return self[changeid] | 788 return self[changeid] |
789 | 789 |
790 def parents(self, changeid=None): | 790 def parents(self, changeid=None): |
908 | 908 |
909 self._writejournal(desc) | 909 self._writejournal(desc) |
910 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] | 910 renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()] |
911 rp = report and report or self.ui.warn | 911 rp = report and report or self.ui.warn |
912 vfsmap = {'plain': self.vfs} # root of .hg/ | 912 vfsmap = {'plain': self.vfs} # root of .hg/ |
913 tr = transaction.transaction(rp, self.sopener, vfsmap, | 913 tr = transaction.transaction(rp, self.svfs, vfsmap, |
914 "journal", | 914 "journal", |
915 aftertrans(renames), | 915 aftertrans(renames), |
916 self.store.createmode) | 916 self.store.createmode) |
917 # note: writing the fncache only during finalize mean that the file is | 917 # note: writing the fncache only during finalize mean that the file is |
918 # outdated when running hooks. As fncache is used for streaming clone, | 918 # outdated when running hooks. As fncache is used for streaming clone, |
939 encoding.fromlocal(self.dirstate.branch())) | 939 encoding.fromlocal(self.dirstate.branch())) |
940 self.vfs.write("journal.desc", | 940 self.vfs.write("journal.desc", |
941 "%d\n%s\n" % (len(self), desc)) | 941 "%d\n%s\n" % (len(self), desc)) |
942 self.vfs.write("journal.bookmarks", | 942 self.vfs.write("journal.bookmarks", |
943 self.vfs.tryread("bookmarks")) | 943 self.vfs.tryread("bookmarks")) |
944 self.sopener.write("journal.phaseroots", | 944 self.svfs.write("journal.phaseroots", |
945 self.sopener.tryread("phaseroots")) | 945 self.svfs.tryread("phaseroots")) |
946 | 946 |
947 def recover(self): | 947 def recover(self): |
948 lock = self.lock() | 948 lock = self.lock() |
949 try: | 949 try: |
950 if self.svfs.exists("journal"): | 950 if self.svfs.exists("journal"): |
951 self.ui.status(_("rolling back interrupted transaction\n")) | 951 self.ui.status(_("rolling back interrupted transaction\n")) |
952 vfsmap = {'': self.sopener, | 952 vfsmap = {'': self.svfs, |
953 'plain': self.vfs,} | 953 'plain': self.vfs,} |
954 transaction.rollback(self.sopener, vfsmap, "journal", | 954 transaction.rollback(self.svfs, vfsmap, "journal", |
955 self.ui.warn) | 955 self.ui.warn) |
956 self.invalidate() | 956 self.invalidate() |
957 return True | 957 return True |
958 else: | 958 else: |
959 self.ui.warn(_("no interrupted transaction available\n")) | 959 self.ui.warn(_("no interrupted transaction available\n")) |
1006 return 0 | 1006 return 0 |
1007 | 1007 |
1008 parents = self.dirstate.parents() | 1008 parents = self.dirstate.parents() |
1009 self.destroying() | 1009 self.destroying() |
1010 vfsmap = {'plain': self.vfs} | 1010 vfsmap = {'plain': self.vfs} |
1011 transaction.rollback(self.sopener, vfsmap, 'undo', ui.warn) | 1011 transaction.rollback(self.svfs, vfsmap, 'undo', ui.warn) |
1012 if self.vfs.exists('undo.bookmarks'): | 1012 if self.vfs.exists('undo.bookmarks'): |
1013 self.vfs.rename('undo.bookmarks', 'bookmarks') | 1013 self.vfs.rename('undo.bookmarks', 'bookmarks') |
1014 if self.svfs.exists('undo.phaseroots'): | 1014 if self.svfs.exists('undo.phaseroots'): |
1015 self.svfs.rename('undo.phaseroots', 'phaseroots') | 1015 self.svfs.rename('undo.phaseroots', 'phaseroots') |
1016 self.invalidate() | 1016 self.invalidate() |
1691 _('unexpected response from remote server:'), l) | 1691 _('unexpected response from remote server:'), l) |
1692 if self.ui.debugflag: | 1692 if self.ui.debugflag: |
1693 self.ui.debug('adding %s (%s)\n' % | 1693 self.ui.debug('adding %s (%s)\n' % |
1694 (name, util.bytecount(size))) | 1694 (name, util.bytecount(size))) |
1695 # for backwards compat, name was partially encoded | 1695 # for backwards compat, name was partially encoded |
1696 ofp = self.sopener(store.decodedir(name), 'w') | 1696 ofp = self.svfs(store.decodedir(name), 'w') |
1697 for chunk in util.filechunkiter(fp, limit=size): | 1697 for chunk in util.filechunkiter(fp, limit=size): |
1698 handled_bytes += len(chunk) | 1698 handled_bytes += len(chunk) |
1699 self.ui.progress(_('clone'), handled_bytes, | 1699 self.ui.progress(_('clone'), handled_bytes, |
1700 total=total_bytes) | 1700 total=total_bytes) |
1701 ofp.write(chunk) | 1701 ofp.write(chunk) |