mercurial/subrepo.py
changeset 27843 b2efdb66c406
parent 27651 07fc2f2134ba
child 27844 469b86c49503
equal deleted inserted replaced
27842:002108b219e3 27843:b2efdb66c406
   677 
   677 
   678         Each remote repo requires its own store hash cache, because a subrepo
   678         Each remote repo requires its own store hash cache, because a subrepo
   679         store may be "clean" versus a given remote repo, but not versus another
   679         store may be "clean" versus a given remote repo, but not versus another
   680         '''
   680         '''
   681         cachefile = _getstorehashcachename(remotepath)
   681         cachefile = _getstorehashcachename(remotepath)
   682         lock = self._repo.lock()
   682         with self._repo.lock():
   683         try:
       
   684             storehash = list(self._calcstorehash(remotepath))
   683             storehash = list(self._calcstorehash(remotepath))
   685             vfs = self._cachestorehashvfs
   684             vfs = self._cachestorehashvfs
   686             vfs.writelines(cachefile, storehash, mode='w', notindexed=True)
   685             vfs.writelines(cachefile, storehash, mode='w', notindexed=True)
   687         finally:
       
   688             lock.release()
       
   689 
   686 
   690     def _getctx(self):
   687     def _getctx(self):
   691         '''fetch the context for this subrepo revision, possibly a workingctx
   688         '''fetch the context for this subrepo revision, possibly a workingctx
   692         '''
   689         '''
   693         if self._ctx.rev() is None:
   690         if self._ctx.rev() is None: