Mercurial > public > mercurial-scm > hg
comparison mercurial/localrepo.py @ 46792:7e08fa9b3d13 stable
typing: add assertions to localrepo.py to appease pytype
Differential Revision: https://phab.mercurial-scm.org/D10214
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sat, 13 Mar 2021 02:07:34 -0500 |
parents | d5d9177c0045 |
children | 86b47ec1960a |
comparison
equal
deleted
inserted
replaced
46791:d35063ebd761 | 46792:7e08fa9b3d13 |
---|---|
2301 if desc != b'strip' and shouldtracktags: | 2301 if desc != b'strip' and shouldtracktags: |
2302 oldheads = self.changelog.headrevs() | 2302 oldheads = self.changelog.headrevs() |
2303 | 2303 |
2304 def tracktags(tr2): | 2304 def tracktags(tr2): |
2305 repo = reporef() | 2305 repo = reporef() |
2306 assert repo is not None # help pytype | |
2306 oldfnodes = tagsmod.fnoderevs(repo.ui, repo, oldheads) | 2307 oldfnodes = tagsmod.fnoderevs(repo.ui, repo, oldheads) |
2307 newheads = repo.changelog.headrevs() | 2308 newheads = repo.changelog.headrevs() |
2308 newfnodes = tagsmod.fnoderevs(repo.ui, repo, newheads) | 2309 newfnodes = tagsmod.fnoderevs(repo.ui, repo, newheads) |
2309 # notes: we compare lists here. | 2310 # notes: we compare lists here. |
2310 # As we do it only once buiding set would not be cheaper | 2311 # As we do it only once buiding set would not be cheaper |
2337 # | 2338 # |
2338 # This will have to be fixed before we remove the experimental | 2339 # This will have to be fixed before we remove the experimental |
2339 # gating. | 2340 # gating. |
2340 tracktags(tr2) | 2341 tracktags(tr2) |
2341 repo = reporef() | 2342 repo = reporef() |
2343 assert repo is not None # help pytype | |
2342 | 2344 |
2343 singleheadopt = (b'experimental', b'single-head-per-branch') | 2345 singleheadopt = (b'experimental', b'single-head-per-branch') |
2344 singlehead = repo.ui.configbool(*singleheadopt) | 2346 singlehead = repo.ui.configbool(*singleheadopt) |
2345 if singlehead: | 2347 if singlehead: |
2346 singleheadsub = repo.ui.configsuboptions(*singleheadopt)[1] | 2348 singleheadsub = repo.ui.configsuboptions(*singleheadopt)[1] |
2440 # fixes the function accumulation. | 2442 # fixes the function accumulation. |
2441 hookargs = tr2.hookargs | 2443 hookargs = tr2.hookargs |
2442 | 2444 |
2443 def hookfunc(unused_success): | 2445 def hookfunc(unused_success): |
2444 repo = reporef() | 2446 repo = reporef() |
2447 assert repo is not None # help pytype | |
2448 | |
2445 if hook.hashook(repo.ui, b'txnclose-bookmark'): | 2449 if hook.hashook(repo.ui, b'txnclose-bookmark'): |
2446 bmchanges = sorted(tr.changes[b'bookmarks'].items()) | 2450 bmchanges = sorted(tr.changes[b'bookmarks'].items()) |
2447 for name, (old, new) in bmchanges: | 2451 for name, (old, new) in bmchanges: |
2448 args = tr.hookargs.copy() | 2452 args = tr.hookargs.copy() |
2449 args.update(bookmarks.preparehookargs(name, old, new)) | 2453 args.update(bookmarks.preparehookargs(name, old, new)) |
2471 | 2475 |
2472 repo.hook( | 2476 repo.hook( |
2473 b'txnclose', throw=False, **pycompat.strkwargs(hookargs) | 2477 b'txnclose', throw=False, **pycompat.strkwargs(hookargs) |
2474 ) | 2478 ) |
2475 | 2479 |
2476 reporef()._afterlock(hookfunc) | 2480 repo = reporef() |
2481 assert repo is not None # help pytype | |
2482 repo._afterlock(hookfunc) | |
2477 | 2483 |
2478 tr.addfinalize(b'txnclose-hook', txnclosehook) | 2484 tr.addfinalize(b'txnclose-hook', txnclosehook) |
2479 # Include a leading "-" to make it happen before the transaction summary | 2485 # Include a leading "-" to make it happen before the transaction summary |
2480 # reports registered via scmutil.registersummarycallback() whose names | 2486 # reports registered via scmutil.registersummarycallback() whose names |
2481 # are 00-txnreport etc. That way, the caches will be warm when the | 2487 # are 00-txnreport etc. That way, the caches will be warm when the |
2482 # callbacks run. | 2488 # callbacks run. |
2483 tr.addpostclose(b'-warm-cache', self._buildcacheupdater(tr)) | 2489 tr.addpostclose(b'-warm-cache', self._buildcacheupdater(tr)) |
2484 | 2490 |
2485 def txnaborthook(tr2): | 2491 def txnaborthook(tr2): |
2486 """To be run if transaction is aborted""" | 2492 """To be run if transaction is aborted""" |
2487 reporef().hook( | 2493 repo = reporef() |
2494 assert repo is not None # help pytype | |
2495 repo.hook( | |
2488 b'txnabort', throw=False, **pycompat.strkwargs(tr2.hookargs) | 2496 b'txnabort', throw=False, **pycompat.strkwargs(tr2.hookargs) |
2489 ) | 2497 ) |
2490 | 2498 |
2491 tr.addabort(b'txnabort-hook', txnaborthook) | 2499 tr.addabort(b'txnabort-hook', txnaborthook) |
2492 # avoid eager cache invalidation. in-memory data should be identical | 2500 # avoid eager cache invalidation. in-memory data should be identical |
2665 # we must avoid cyclic reference between repo and transaction. | 2673 # we must avoid cyclic reference between repo and transaction. |
2666 reporef = weakref.ref(self) | 2674 reporef = weakref.ref(self) |
2667 | 2675 |
2668 def updater(tr): | 2676 def updater(tr): |
2669 repo = reporef() | 2677 repo = reporef() |
2678 assert repo is not None # help pytype | |
2670 repo.updatecaches(tr) | 2679 repo.updatecaches(tr) |
2671 | 2680 |
2672 return updater | 2681 return updater |
2673 | 2682 |
2674 @unfilteredmethod | 2683 @unfilteredmethod |