aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd_linux.go6
-rw-r--r--watcher.go10
2 files changed, 6 insertions, 10 deletions
diff --git a/cmd_linux.go b/cmd_linux.go
index 390e431..305b7d1 100644
--- a/cmd_linux.go
+++ b/cmd_linux.go
@@ -194,17 +194,13 @@ func syncFromManifest(remote *Manifest, stack *GitignoreStack) {
if localMeta, exists := localManifest.Files[relPath]; exists {
if localMeta.Size == remoteMeta.Size &&
- localMeta.Mode == remoteMeta.Mode &&
- localMeta.ModTime.Equal(remoteMeta.ModTime) &&
localMeta.Symlink == remoteMeta.Symlink {
continue
}
if debugShown < 5 {
- logDebug("mismatch %s: size=%d/%d mode=%o/%o modtime=%v/%v symlink=%q/%q",
+ logDebug("mismatch %s: size=%d/%d symlink=%q/%q",
relPath,
localMeta.Size, remoteMeta.Size,
- localMeta.Mode, remoteMeta.Mode,
- localMeta.ModTime, remoteMeta.ModTime,
localMeta.Symlink, remoteMeta.Symlink)
debugShown++
}
diff --git a/watcher.go b/watcher.go
index 1ee3972..137bb36 100644
--- a/watcher.go
+++ b/watcher.go
@@ -89,11 +89,6 @@ func syncWrite(srcPath, destPath, relPath string, manifest *Manifest, dryRun boo
return
}
- meta, exists := manifest.Files[relPath]
- if exists && meta.Size == info.Size() && meta.Mode == info.Mode() && meta.ModTime.Equal(info.ModTime()) {
- return
- }
-
linkTarget := ""
if info.Mode()&os.ModeSymlink != 0 {
linkTarget, err = os.Readlink(srcPath)
@@ -103,6 +98,11 @@ func syncWrite(srcPath, destPath, relPath string, manifest *Manifest, dryRun boo
}
}
+ meta, exists := manifest.Files[relPath]
+ if exists && meta.Size == info.Size() && meta.Symlink == linkTarget {
+ return
+ }
+
manifest.Files[relPath] = FileMeta{
Size: info.Size(),
Mode: info.Mode(),