From c8b261535c069c47df70592f2acba35b2c29a54c Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 6 Nov 2024 00:18:04 +0100 Subject: Change SingleMerge to only use second precision when comparing last modified Otherwise you get problems with one file system uses seconds and another milliseconds and suddenly two files that are created at the same time does not have the same timestamp. Makes the test suite take 2 seconds longer to run but it is what it is. --- libs/io/src/main/java/org/the_jk/cleversync/io/SingleMerge.kt | 5 ++++- .../src/test/java/org/the_jk/cleversync/io/SingleMergeLocalTest.kt | 3 --- 2 files changed, 4 insertions(+), 4 deletions(-) (limited to 'libs/io/src') diff --git a/libs/io/src/main/java/org/the_jk/cleversync/io/SingleMerge.kt b/libs/io/src/main/java/org/the_jk/cleversync/io/SingleMerge.kt index f9107db..711daae 100644 --- a/libs/io/src/main/java/org/the_jk/cleversync/io/SingleMerge.kt +++ b/libs/io/src/main/java/org/the_jk/cleversync/io/SingleMerge.kt @@ -100,7 +100,10 @@ object SingleMerge { } else { val targetFile = targetContent.files.find { it.name == sourceName } if (targetFile != null) { - if (targetFile.size != sourceSize || sourceLastModified > targetFile.lastModified) { + // When comparing times, reduce to nearest second, anything else + // over network based filesystems is just silly. + if (targetFile.size != sourceSize || + sourceLastModified.epochSecond > targetFile.lastModified.epochSecond) { actions.add(Action.Copy(sourceName, overwrite = true)) } } else { diff --git a/libs/io/src/test/java/org/the_jk/cleversync/io/SingleMergeLocalTest.kt b/libs/io/src/test/java/org/the_jk/cleversync/io/SingleMergeLocalTest.kt index 07cc848..d13213c 100644 --- a/libs/io/src/test/java/org/the_jk/cleversync/io/SingleMergeLocalTest.kt +++ b/libs/io/src/test/java/org/the_jk/cleversync/io/SingleMergeLocalTest.kt @@ -3,7 +3,6 @@ package org.the_jk.cleversync.io import org.junit.Rule import org.junit.rules.TemporaryFolder import org.the_jk.cleversync.local.LocalTreeFactory -import kotlin.time.Duration.Companion.milliseconds class SingleMergeLocalTest : BaseSingleMergeTest() { @Rule @@ -21,6 +20,4 @@ class SingleMergeLocalTest : BaseSingleMergeTest() { } override fun targetSupportsSymlinks() = true - - override fun minModificationTime() = 10.milliseconds } -- cgit v1.2.3-70-g09d2