From e7bb8c7c595fc9e2a024c2694596750b6a9f6480 Mon Sep 17 00:00:00 2001 From: Bernhard Guillon Date: Tue, 7 Jul 2026 21:40:50 +0200 Subject: Preserve modtime on copy so subsequent syncs don't re-copy everything --- sync.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sync.go') diff --git a/sync.go b/sync.go index 78f3fa8..a22e628 100644 --- a/sync.go +++ b/sync.go @@ -141,6 +141,15 @@ func copyFile(src, dst string, mode os.FileMode) error { } defer dstFile.Close() - _, err = io.Copy(dstFile, srcFile) - return err + if _, err = io.Copy(dstFile, srcFile); err != nil { + return err + } + + // Preserve modtime so next sync comparison matches + srcInfo, err := os.Lstat(src) + if err != nil { + return nil // content copied, modtime is non-fatal + } + os.Chtimes(dst, srcInfo.ModTime(), srcInfo.ModTime()) + return nil } -- cgit v1.2.3