Mercurial > hg
comparison tests/fakedirstatewritetime.py @ 43076:2372284d9457
formatting: blacken the codebase
This is using my patch to black
(https://github.com/psf/black/pull/826) so we don't un-wrap collection
literals.
Done with:
hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S
# skip-blame mass-reformatting only
# no-check-commit reformats foo_bar functions
Differential Revision: https://phab.mercurial-scm.org/D6971
author | Augie Fackler <augie@google.com> |
---|---|
date | Sun, 06 Oct 2019 09:45:02 -0400 |
parents | 760a7851e9ba |
children | 9f70512ae2cf |
comparison
equal
deleted
inserted
replaced
43075:57875cf423c9 | 43076:2372284d9457 |
---|---|
16 ) | 16 ) |
17 from mercurial.utils import dateutil | 17 from mercurial.utils import dateutil |
18 | 18 |
19 try: | 19 try: |
20 from mercurial import rustext | 20 from mercurial import rustext |
21 | |
21 rustext.__name__ # force actual import (see hgdemandimport) | 22 rustext.__name__ # force actual import (see hgdemandimport) |
22 except ImportError: | 23 except ImportError: |
23 rustext = None | 24 rustext = None |
24 | 25 |
25 configtable = {} | 26 configtable = {} |
26 configitem = registrar.configitem(configtable) | 27 configitem = registrar.configitem(configtable) |
27 | 28 |
28 configitem(b'fakedirstatewritetime', b'fakenow', | 29 configitem( |
29 default=None, | 30 b'fakedirstatewritetime', b'fakenow', default=None, |
30 ) | 31 ) |
31 | 32 |
32 parsers = policy.importmod(r'parsers') | 33 parsers = policy.importmod(r'parsers') |
33 rustmod = policy.importrust(r'parsers') | 34 rustmod = policy.importrust(r'parsers') |
35 | |
34 | 36 |
35 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now): | 37 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now): |
36 # execute what original parsers.pack_dirstate should do actually | 38 # execute what original parsers.pack_dirstate should do actually |
37 # for consistency | 39 # for consistency |
38 actualnow = int(now) | 40 actualnow = int(now) |
40 if e[0] == 'n' and e[3] == actualnow: | 42 if e[0] == 'n' and e[3] == actualnow: |
41 e = parsers.dirstatetuple(e[0], e[1], e[2], -1) | 43 e = parsers.dirstatetuple(e[0], e[1], e[2], -1) |
42 dmap[f] = e | 44 dmap[f] = e |
43 | 45 |
44 return orig(dmap, copymap, pl, fakenow) | 46 return orig(dmap, copymap, pl, fakenow) |
47 | |
45 | 48 |
46 def fakewrite(ui, func): | 49 def fakewrite(ui, func): |
47 # fake "now" of 'pack_dirstate' only if it is invoked while 'func' | 50 # fake "now" of 'pack_dirstate' only if it is invoked while 'func' |
48 | 51 |
49 fakenow = ui.config(b'fakedirstatewritetime', b'fakenow') | 52 fakenow = ui.config(b'fakedirstatewritetime', b'fakenow') |
60 | 63 |
61 if rustmod is not None: | 64 if rustmod is not None: |
62 # The Rust implementation does not use public parse/pack dirstate | 65 # The Rust implementation does not use public parse/pack dirstate |
63 # to prevent conversion round-trips | 66 # to prevent conversion round-trips |
64 orig_dirstatemap_write = dirstate.dirstatemap.write | 67 orig_dirstatemap_write = dirstate.dirstatemap.write |
65 wrapper = lambda self, st, now: orig_dirstatemap_write(self, | 68 wrapper = lambda self, st, now: orig_dirstatemap_write( |
66 st, | 69 self, st, fakenow |
67 fakenow) | 70 ) |
68 dirstate.dirstatemap.write = wrapper | 71 dirstate.dirstatemap.write = wrapper |
69 | 72 |
70 orig_dirstate_getfsnow = dirstate._getfsnow | 73 orig_dirstate_getfsnow = dirstate._getfsnow |
71 wrapper = lambda *args: pack_dirstate(fakenow, orig_pack_dirstate, *args) | 74 wrapper = lambda *args: pack_dirstate(fakenow, orig_pack_dirstate, *args) |
72 | 75 |
81 orig_module.pack_dirstate = orig_pack_dirstate | 84 orig_module.pack_dirstate = orig_pack_dirstate |
82 dirstate._getfsnow = orig_dirstate_getfsnow | 85 dirstate._getfsnow = orig_dirstate_getfsnow |
83 if rustmod is not None: | 86 if rustmod is not None: |
84 dirstate.dirstatemap.write = orig_dirstatemap_write | 87 dirstate.dirstatemap.write = orig_dirstatemap_write |
85 | 88 |
89 | |
86 def _poststatusfixup(orig, workingctx, status, fixup): | 90 def _poststatusfixup(orig, workingctx, status, fixup): |
87 ui = workingctx.repo().ui | 91 ui = workingctx.repo().ui |
88 return fakewrite(ui, lambda : orig(workingctx, status, fixup)) | 92 return fakewrite(ui, lambda: orig(workingctx, status, fixup)) |
93 | |
89 | 94 |
90 def markcommitted(orig, committablectx, node): | 95 def markcommitted(orig, committablectx, node): |
91 ui = committablectx.repo().ui | 96 ui = committablectx.repo().ui |
92 return fakewrite(ui, lambda : orig(committablectx, node)) | 97 return fakewrite(ui, lambda: orig(committablectx, node)) |
98 | |
93 | 99 |
94 def extsetup(ui): | 100 def extsetup(ui): |
95 extensions.wrapfunction(context.workingctx, '_poststatusfixup', | 101 extensions.wrapfunction( |
96 _poststatusfixup) | 102 context.workingctx, '_poststatusfixup', _poststatusfixup |
97 extensions.wrapfunction(context.workingctx, 'markcommitted', | 103 ) |
98 markcommitted) | 104 extensions.wrapfunction(context.workingctx, 'markcommitted', markcommitted) |