tests/fakedirstatewritetime.py
changeset 48020 1194394510ba
parent 47674 ff97e793ed36
child 48260 269ff8978086
equal deleted inserted replaced
48019:a83e24c3af6b 48020:1194394510ba
    32     b'fakenow',
    32     b'fakenow',
    33     default=None,
    33     default=None,
    34 )
    34 )
    35 
    35 
    36 parsers = policy.importmod('parsers')
    36 parsers = policy.importmod('parsers')
    37 rustmod = policy.importrust('parsers')
    37 has_rust_dirstate = policy.importrust('dirstate') is not None
    38 
    38 
    39 
    39 
    40 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now):
    40 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now):
    41     # execute what original parsers.pack_dirstate should do actually
    41     # execute what original parsers.pack_dirstate should do actually
    42     # for consistency
    42     # for consistency
    61 
    61 
    62     # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between
    62     # parsing 'fakenow' in YYYYmmddHHMM format makes comparison between
    63     # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy
    63     # 'fakenow' value and 'touch -t YYYYmmddHHMM' argument easy
    64     fakenow = dateutil.parsedate(fakenow, [b'%Y%m%d%H%M'])[0]
    64     fakenow = dateutil.parsedate(fakenow, [b'%Y%m%d%H%M'])[0]
    65 
    65 
    66     if rustmod is not None:
    66     if has_rust_dirstate:
    67         # The Rust implementation does not use public parse/pack dirstate
    67         # The Rust implementation does not use public parse/pack dirstate
    68         # to prevent conversion round-trips
    68         # to prevent conversion round-trips
    69         orig_dirstatemap_write = dirstatemapmod.dirstatemap.write
    69         orig_dirstatemap_write = dirstatemapmod.dirstatemap.write
    70         wrapper = lambda self, tr, st, now: orig_dirstatemap_write(
    70         wrapper = lambda self, tr, st, now: orig_dirstatemap_write(
    71             self, tr, st, fakenow
    71             self, tr, st, fakenow
    83     try:
    83     try:
    84         return func()
    84         return func()
    85     finally:
    85     finally:
    86         orig_module.pack_dirstate = orig_pack_dirstate
    86         orig_module.pack_dirstate = orig_pack_dirstate
    87         dirstate._getfsnow = orig_dirstate_getfsnow
    87         dirstate._getfsnow = orig_dirstate_getfsnow
    88         if rustmod is not None:
    88         if has_rust_dirstate:
    89             dirstatemapmod.dirstatemap.write = orig_dirstatemap_write
    89             dirstatemapmod.dirstatemap.write = orig_dirstatemap_write
    90 
    90 
    91 
    91 
    92 def _poststatusfixup(orig, workingctx, status, fixup):
    92 def _poststatusfixup(orig, workingctx, status, fixup):
    93     ui = workingctx.repo().ui
    93     ui = workingctx.repo().ui