Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/merge.py @ 27130:6f045b563fa5
mergestate: add a cached property accessor for the local context
This is going to be useful in an upcoming patch. We make this a public accessor
because this is also going to be useful for custom merge drivers.
author | Siddharth Agarwal <sid0@fb.com> |
---|---|
date | Mon, 30 Nov 2015 10:03:21 -0800 |
parents | 1bf1a7c3df43 |
children | d837da26155e |
comparison
equal
deleted
inserted
replaced
27129:1bf1a7c3df43 | 27130:6f045b563fa5 |
---|---|
101 | 101 |
102 def reset(self, node=None, other=None): | 102 def reset(self, node=None, other=None): |
103 self._state = {} | 103 self._state = {} |
104 self._local = None | 104 self._local = None |
105 self._other = None | 105 self._other = None |
106 if 'otherctx' in vars(self): | 106 for var in ('localctx', 'otherctx'): |
107 del self.otherctx | 107 if var in vars(self): |
108 delattr(self, var) | |
108 if node: | 109 if node: |
109 self._local = node | 110 self._local = node |
110 self._other = other | 111 self._other = other |
111 self._readmergedriver = None | 112 self._readmergedriver = None |
112 if self.mergedriver: | 113 if self.mergedriver: |
124 of on disk file. | 125 of on disk file. |
125 """ | 126 """ |
126 self._state = {} | 127 self._state = {} |
127 self._local = None | 128 self._local = None |
128 self._other = None | 129 self._other = None |
129 if 'otherctx' in vars(self): | 130 for var in ('localctx', 'otherctx'): |
130 del self.otherctx | 131 if var in vars(self): |
132 delattr(self, var) | |
131 self._readmergedriver = None | 133 self._readmergedriver = None |
132 self._mdstate = 's' | 134 self._mdstate = 's' |
133 unsupported = set() | 135 unsupported = set() |
134 records = self._readrecords() | 136 records = self._readrecords() |
135 for rtype, record in records: | 137 for rtype, record in records: |
283 raise error.ConfigError( | 285 raise error.ConfigError( |
284 _("merge driver changed since merge started"), | 286 _("merge driver changed since merge started"), |
285 hint=_("revert merge driver change or abort merge")) | 287 hint=_("revert merge driver change or abort merge")) |
286 | 288 |
287 return configmergedriver | 289 return configmergedriver |
290 | |
291 @util.propertycache | |
292 def localctx(self): | |
293 if self._local is None: | |
294 raise RuntimeError("localctx accessed but self._local isn't set") | |
295 return self._repo[self._local] | |
288 | 296 |
289 @util.propertycache | 297 @util.propertycache |
290 def otherctx(self): | 298 def otherctx(self): |
291 if self._other is None: | 299 if self._other is None: |
292 raise RuntimeError("localctx accessed but self._local isn't set") | 300 raise RuntimeError("localctx accessed but self._local isn't set") |