equal
deleted
inserted
replaced
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): |