mercurial/localrepo.py
changeset 45519 9b16bb3b2349
parent 45504 a8843eda9a35
child 45783 88a47cbf063c
equal deleted inserted replaced
45518:32ce4cbaec4b 45519:9b16bb3b2349
  2676             if k == 'dirstate' or k not in self.__dict__:
  2676             if k == 'dirstate' or k not in self.__dict__:
  2677                 continue
  2677                 continue
  2678             ce.refresh()
  2678             ce.refresh()
  2679 
  2679 
  2680     def _lock(
  2680     def _lock(
  2681         self,
  2681         self, vfs, lockname, wait, releasefn, acquirefn, desc,
  2682         vfs,
       
  2683         lockname,
       
  2684         wait,
       
  2685         releasefn,
       
  2686         acquirefn,
       
  2687         desc,
       
  2688         inheritchecker=None,
       
  2689         parentenvvar=None,
       
  2690     ):
  2682     ):
  2691         parentlock = None
       
  2692         # the contents of parentenvvar are used by the underlying lock to
       
  2693         # determine whether it can be inherited
       
  2694         if parentenvvar is not None:
       
  2695             parentlock = encoding.environ.get(parentenvvar)
       
  2696 
       
  2697         timeout = 0
  2683         timeout = 0
  2698         warntimeout = 0
  2684         warntimeout = 0
  2699         if wait:
  2685         if wait:
  2700             timeout = self.ui.configint(b"ui", b"timeout")
  2686             timeout = self.ui.configint(b"ui", b"timeout")
  2701             warntimeout = self.ui.configint(b"ui", b"timeout.warn")
  2687             warntimeout = self.ui.configint(b"ui", b"timeout.warn")
  2709             timeout,
  2695             timeout,
  2710             warntimeout,
  2696             warntimeout,
  2711             releasefn=releasefn,
  2697             releasefn=releasefn,
  2712             acquirefn=acquirefn,
  2698             acquirefn=acquirefn,
  2713             desc=desc,
  2699             desc=desc,
  2714             inheritchecker=inheritchecker,
       
  2715             parentlock=parentlock,
       
  2716             signalsafe=signalsafe,
  2700             signalsafe=signalsafe,
  2717         )
  2701         )
  2718         return l
  2702         return l
  2719 
  2703 
  2720     def _afterlock(self, callback):
  2704     def _afterlock(self, callback):
  2751             desc=_(b'repository %s') % self.origroot,
  2735             desc=_(b'repository %s') % self.origroot,
  2752         )
  2736         )
  2753         self._lockref = weakref.ref(l)
  2737         self._lockref = weakref.ref(l)
  2754         return l
  2738         return l
  2755 
  2739 
  2756     def _wlockchecktransaction(self):
       
  2757         if self.currenttransaction() is not None:
       
  2758             raise error.LockInheritanceContractViolation(
       
  2759                 b'wlock cannot be inherited in the middle of a transaction'
       
  2760             )
       
  2761 
       
  2762     def wlock(self, wait=True):
  2740     def wlock(self, wait=True):
  2763         '''Lock the non-store parts of the repository (everything under
  2741         '''Lock the non-store parts of the repository (everything under
  2764         .hg except .hg/store) and return a weak reference to the lock.
  2742         .hg except .hg/store) and return a weak reference to the lock.
  2765 
  2743 
  2766         Use this before modifying files in .hg.
  2744         Use this before modifying files in .hg.
  2794             b"wlock",
  2772             b"wlock",
  2795             wait,
  2773             wait,
  2796             unlock,
  2774             unlock,
  2797             self.invalidatedirstate,
  2775             self.invalidatedirstate,
  2798             _(b'working directory of %s') % self.origroot,
  2776             _(b'working directory of %s') % self.origroot,
  2799             inheritchecker=self._wlockchecktransaction,
       
  2800             parentenvvar=b'HG_WLOCK_LOCKER',
       
  2801         )
  2777         )
  2802         self._wlockref = weakref.ref(l)
  2778         self._wlockref = weakref.ref(l)
  2803         return l
  2779         return l
  2804 
  2780 
  2805     def _currentlock(self, lockref):
  2781     def _currentlock(self, lockref):