comparison hgext/fsmonitor/__init__.py @ 45942:89a2afe31e82

formating: upgrade to black 20.8b1 This required a couple of small tweaks to un-confuse black, but now it works. Big formatting changes come from: * Dramatically improved collection-splitting logic upstream * Black having a strong (correct IMO) opinion that """ is better than ''' Differential Revision: https://phab.mercurial-scm.org/D9430
author Augie Fackler <raf@durin42.com>
date Fri, 27 Nov 2020 17:03:29 -0500
parents 2c86b9587740
children 6fb282ce9113
comparison
equal deleted inserted replaced
45941:346af7687c6f 45942:89a2afe31e82
152 152
153 configtable = {} 153 configtable = {}
154 configitem = registrar.configitem(configtable) 154 configitem = registrar.configitem(configtable)
155 155
156 configitem( 156 configitem(
157 b'fsmonitor', b'mode', default=b'on', 157 b'fsmonitor',
158 b'mode',
159 default=b'on',
158 ) 160 )
159 configitem( 161 configitem(
160 b'fsmonitor', b'walk_on_invalidate', default=False, 162 b'fsmonitor',
163 b'walk_on_invalidate',
164 default=False,
161 ) 165 )
162 configitem( 166 configitem(
163 b'fsmonitor', b'timeout', default=b'2', 167 b'fsmonitor',
168 b'timeout',
169 default=b'2',
164 ) 170 )
165 configitem( 171 configitem(
166 b'fsmonitor', b'blacklistusers', default=list, 172 b'fsmonitor',
173 b'blacklistusers',
174 default=list,
167 ) 175 )
168 configitem( 176 configitem(
169 b'fsmonitor', b'watchman_exe', default=b'watchman', 177 b'fsmonitor',
178 b'watchman_exe',
179 default=b'watchman',
170 ) 180 )
171 configitem( 181 configitem(
172 b'fsmonitor', b'verbose', default=True, experimental=True, 182 b'fsmonitor',
183 b'verbose',
184 default=True,
185 experimental=True,
173 ) 186 )
174 configitem( 187 configitem(
175 b'experimental', b'fsmonitor.transaction_notify', default=False, 188 b'experimental',
189 b'fsmonitor.transaction_notify',
190 default=False,
176 ) 191 )
177 192
178 # This extension is incompatible with the following blacklisted extensions 193 # This extension is incompatible with the following blacklisted extensions
179 # and will disable itself when encountering one of these: 194 # and will disable itself when encountering one of these:
180 _blacklist = [b'largefiles', b'eol'] 195 _blacklist = [b'largefiles', b'eol']
269 284
270 return encoded 285 return encoded
271 286
272 287
273 def overridewalk(orig, self, match, subrepos, unknown, ignored, full=True): 288 def overridewalk(orig, self, match, subrepos, unknown, ignored, full=True):
274 '''Replacement for dirstate.walk, hooking into Watchman. 289 """Replacement for dirstate.walk, hooking into Watchman.
275 290
276 Whenever full is False, ignored is False, and the Watchman client is 291 Whenever full is False, ignored is False, and the Watchman client is
277 available, use Watchman combined with saved state to possibly return only a 292 available, use Watchman combined with saved state to possibly return only a
278 subset of files.''' 293 subset of files."""
279 294
280 def bail(reason): 295 def bail(reason):
281 self._ui.debug(b'fsmonitor: fallback to core status, %s\n' % reason) 296 self._ui.debug(b'fsmonitor: fallback to core status, %s\n' % reason)
282 return orig(match, subrepos, unknown, ignored, full=True) 297 return orig(match, subrepos, unknown, ignored, full=True)
283 298
729 744
730 extensions.wrapfunction(merge, b'_update', wrapupdate) 745 extensions.wrapfunction(merge, b'_update', wrapupdate)
731 746
732 747
733 def wrapsymlink(orig, source, link_name): 748 def wrapsymlink(orig, source, link_name):
734 ''' if we create a dangling symlink, also touch the parent dir 749 """if we create a dangling symlink, also touch the parent dir
735 to encourage fsevents notifications to work more correctly ''' 750 to encourage fsevents notifications to work more correctly"""
736 try: 751 try:
737 return orig(source, link_name) 752 return orig(source, link_name)
738 finally: 753 finally:
739 try: 754 try:
740 os.utime(os.path.dirname(link_name), None) 755 os.utime(os.path.dirname(link_name), None)
741 except OSError: 756 except OSError:
742 pass 757 pass
743 758
744 759
745 class state_update(object): 760 class state_update(object):
746 ''' This context manager is responsible for dispatching the state-enter 761 """This context manager is responsible for dispatching the state-enter
747 and state-leave signals to the watchman service. The enter and leave 762 and state-leave signals to the watchman service. The enter and leave
748 methods can be invoked manually (for scenarios where context manager 763 methods can be invoked manually (for scenarios where context manager
749 semantics are not possible). If parameters oldnode and newnode are None, 764 semantics are not possible). If parameters oldnode and newnode are None,
750 they will be populated based on current working copy in enter and 765 they will be populated based on current working copy in enter and
751 leave, respectively. Similarly, if the distance is none, it will be 766 leave, respectively. Similarly, if the distance is none, it will be
752 calculated based on the oldnode and newnode in the leave method.''' 767 calculated based on the oldnode and newnode in the leave method."""
753 768
754 def __init__( 769 def __init__(
755 self, 770 self,
756 repo, 771 repo,
757 name, 772 name,