37 return orig(dmap, copymap, pl, fakenow) |
37 return orig(dmap, copymap, pl, fakenow) |
38 |
38 |
39 def fakewrite(ui, func): |
39 def fakewrite(ui, func): |
40 # fake "now" of 'pack_dirstate' only if it is invoked while 'func' |
40 # fake "now" of 'pack_dirstate' only if it is invoked while 'func' |
41 |
41 |
42 fakenow = ui.config('fakedirstatewritetime', 'fakenow') |
42 fakenow = ui.config(b'fakedirstatewritetime', b'fakenow') |
43 if not fakenow: |
43 if not fakenow: |
44 # Execute original one, if fakenow isn't configured. This is |
44 # Execute original one, if fakenow isn't configured. This is |
45 # useful to prevent subrepos from executing replaced one, |
45 # useful to prevent subrepos from executing replaced one, |
46 # because replacing 'parsers.pack_dirstate' is also effective |
46 # because replacing 'parsers.pack_dirstate' is also effective |
47 # in subrepos. |
47 # in subrepos. |
48 return func() |
48 return func() |
49 |
49 |
50 # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between |
50 # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between |
51 # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy |
51 # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy |
52 fakenow = util.parsedate(fakenow, ['%Y%m%d%H%M'])[0] |
52 fakenow = util.parsedate(fakenow, [b'%Y%m%d%H%M'])[0] |
53 |
53 |
54 orig_pack_dirstate = parsers.pack_dirstate |
54 orig_pack_dirstate = parsers.pack_dirstate |
55 orig_dirstate_getfsnow = dirstate._getfsnow |
55 orig_dirstate_getfsnow = dirstate._getfsnow |
56 wrapper = lambda *args: pack_dirstate(fakenow, orig_pack_dirstate, *args) |
56 wrapper = lambda *args: pack_dirstate(fakenow, orig_pack_dirstate, *args) |
57 |
57 |