tests/fakedirstatewritetime.py
changeset 48260 269ff8978086
parent 48020 1194394510ba
child 48379 08b060abd658
equal deleted inserted replaced
48259:84f6b0c41b90 48260:269ff8978086
    13     dirstatemap as dirstatemapmod,
    13     dirstatemap as dirstatemapmod,
    14     extensions,
    14     extensions,
    15     policy,
    15     policy,
    16     registrar,
    16     registrar,
    17 )
    17 )
       
    18 from mercurial.dirstateutils import timestamp
    18 from mercurial.utils import dateutil
    19 from mercurial.utils import dateutil
    19 
    20 
    20 try:
    21 try:
    21     from mercurial import rustext
    22     from mercurial import rustext
    22 
    23 
    38 
    39 
    39 
    40 
    40 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now):
    41 def pack_dirstate(fakenow, orig, dmap, copymap, pl, now):
    41     # execute what original parsers.pack_dirstate should do actually
    42     # execute what original parsers.pack_dirstate should do actually
    42     # for consistency
    43     # for consistency
    43     actualnow = int(now)
       
    44     for f, e in dmap.items():
    44     for f, e in dmap.items():
    45         if e.need_delay(actualnow):
    45         if e.need_delay(now):
    46             e.set_possibly_dirty()
    46             e.set_possibly_dirty()
    47 
    47 
    48     return orig(dmap, copymap, pl, fakenow)
    48     return orig(dmap, copymap, pl, fakenow)
    49 
    49 
    50 
    50 
    60         return func()
    60         return func()
    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     fakenow = timestamp.timestamp((fakenow, 0))
    65 
    66 
    66     if has_rust_dirstate:
    67     if has_rust_dirstate:
    67         # The Rust implementation does not use public parse/pack dirstate
    68         # The Rust implementation does not use public parse/pack dirstate
    68         # to prevent conversion round-trips
    69         # to prevent conversion round-trips
    69         orig_dirstatemap_write = dirstatemapmod.dirstatemap.write
    70         orig_dirstatemap_write = dirstatemapmod.dirstatemap.write