equal
deleted
inserted
replaced
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 |