rclone/cmd/bisync
nielash 956c2963fd bisync: don't convert modtime precision in listings - fixes #8025
Before this change, bisync proactively converted modtime precision when greater
than what the destination backend supported.

This dates back to a time before bisync considered the modifyWindow for same-side
comparisons. Back then, it was problematic to save a listing with 12:54:49.7 for
a backend that can't handle that precision, as on the next run the backend would
report the time as 12:54:50 and bisync would think the file had changed. So the
truncation was a workaround to anticipate this and proactively record the time
with the precision we expect to receive next time.

However, this caused problems for backends (such as dropbox) that round instead
of truncating as bisync expected.

After this change, bisync preserves the original precision in the listing
(without conversion), even when greater than what the backend supports, to avoid
rounding error. On the next run, bisync will compare it to the rounded time
reported by the backend, and if it's within the modifyWindow, it will treat them
as equivalent.
2024-08-24 22:32:48 -04:00
..
bilib bisync: fix io.PipeWriter not getting closed on tests 2024-04-07 21:55:26 -04:00
testdata bisync: make session path even shorter on tests 2024-04-16 14:45:54 -04:00
bisync_debug_test.go bisync: add to integration tests - fixes #7665 2024-03-27 10:50:14 -04:00
bisync_test.go build: fix gocritic lint issue wrapperfunc 2024-08-15 22:08:34 +01:00
checkfn.go build: bisync: fix govet lint errors with golangci-lint v1.60.1 2024-08-14 18:21:31 +01:00
cmd.go bisync: use global --retries and --retries-sleep flags instead of overriding 2024-02-12 13:24:54 -05:00
compare.go build: bisync: fix govet lint errors with golangci-lint v1.60.1 2024-08-14 18:21:31 +01:00
deltas.go build: fix gocritic lint issue elseif 2024-08-15 22:08:34 +01:00
help.go bisync: document beta status more clearly - fixes #6082 2024-01-20 15:38:26 -05:00
LICENSE.cjnaz bisync: implementation #5164 2021-11-01 21:00:27 +03:00
listing.go bisync: don't convert modtime precision in listings - fixes #8025 2024-08-24 22:32:48 -04:00
lockfile.go bisync: fix endless loop if lockfile decoder errors 2024-04-10 16:33:05 +01:00
log.go build: fix gocritic lint issue wrapperfunc 2024-08-15 22:08:34 +01:00
march.go bisync: Graceful Shutdown, --recover from interruptions without --resync - fixes #7470 2024-01-20 16:31:28 -05:00
operations.go build: fix gocritic lint issue elseif 2024-08-15 22:08:34 +01:00
queue.go build: bisync: fix govet lint errors with golangci-lint v1.60.1 2024-08-14 18:21:31 +01:00
rc.go bisync: support two --backup-dir paths on different remotes 2024-01-20 14:50:08 -05:00
resolve.go build: bisync: fix govet lint errors with golangci-lint v1.60.1 2024-08-14 18:21:31 +01:00
resync.go build: bisync: fix govet lint errors with golangci-lint v1.60.1 2024-08-14 18:21:31 +01:00