Mercurial > hg-stable
changeset 52081:572d80e51094
timestamp: make the reliable comparison more usable from outside
This is going to be used with pre-computed times unlike in status.
author | Raphaël Gomès <rgomes@octobus.net> |
---|---|
date | Wed, 16 Oct 2024 18:41:49 +0200 |
parents | 7ea1cb46b590 |
children | f5742367a279 |
files | mercurial/dirstateutils/timestamp.py |
diffstat | 1 files changed, 11 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstateutils/timestamp.py Wed Oct 16 18:40:59 2024 +0200 +++ b/mercurial/dirstateutils/timestamp.py Wed Oct 16 18:41:49 2024 +0200 @@ -100,6 +100,14 @@ def reliable_mtime_of( stat_result: os.stat_result, present_mtime: timestamp ) -> Optional[timestamp]: + """Wrapper for `make_mtime_reliable` for stat objects""" + file_mtime = mtime_of(stat_result) + return make_mtime_reliable(file_mtime, present_mtime) + + +def make_mtime_reliable( + file_timestamp: timestamp, present_mtime: timestamp +) -> Optional[timestamp]: """Same as `mtime_of`, but return `None` or a `Timestamp` with `second_ambiguous` set if the date might be ambiguous. @@ -108,9 +116,8 @@ Otherwise a concurrent modification might happens with the same mtime. """ - file_mtime = mtime_of(stat_result) - file_second = file_mtime[0] - file_ns = file_mtime[1] + file_second = file_timestamp[0] + file_ns = file_timestamp[1] boundary_second = present_mtime[0] boundary_ns = present_mtime[1] # If the mtime of the ambiguous file is younger (or equal) to the starting @@ -129,4 +136,4 @@ elif boundary_second < file_second < (3600 * 24 + boundary_second): return None else: - return file_mtime + return file_timestamp