Browse Source

Always ignore directory modification time (that stuff is nasty)

Jakob Borg 11 years ago
parent
commit
d3085a4127
2 changed files with 2 additions and 19 deletions
  1. 1 18
      model/puller.go
  2. 1 1
      scanner/walk.go

+ 1 - 18
model/puller.go

@@ -9,7 +9,6 @@ import (
 	"errors"
 	"os"
 	"path/filepath"
-	"runtime"
 	"time"
 
 	"github.com/calmh/syncthing/config"
@@ -278,22 +277,6 @@ func (p *puller) fixupDirectories() {
 			}
 		}
 
-		if cur.Modified != info.ModTime().Unix() {
-			t := time.Unix(cur.Modified, 0)
-			err := os.Chtimes(path, t, t)
-			if err != nil {
-				if runtime.GOOS != "windows" {
-					// https://code.google.com/p/go/issues/detail?id=8090
-					l.Warnf("Restoring folder modtime: %q: %v", path, err)
-				}
-			} else {
-				changed++
-				if debug {
-					l.Debugf("restored dir modtime: %d -> %v", info.ModTime().Unix(), cur)
-				}
-			}
-		}
-
 		return nil
 	}
 
@@ -373,7 +356,7 @@ func (p *puller) handleBlock(b bqBlock) bool {
 				if debug {
 					l.Debugf("create dir: %v", f)
 				}
-				err = os.MkdirAll(path, 0777)
+				err = os.MkdirAll(path, os.FileMode(f.Flags&0777))
 				if err != nil {
 					l.Warnf("Create folder: %q: %v", path, err)
 				}

+ 1 - 1
scanner/walk.go

@@ -166,7 +166,7 @@ func (w *Walker) walkAndHashFiles(fchan chan protocol.FileInfo, ign map[string][
 			if w.CurrentFiler != nil {
 				cf := w.CurrentFiler.CurrentFile(rn)
 				permUnchanged := w.IgnorePerms || !protocol.HasPermissionBits(cf.Flags) || PermsEqual(cf.Flags, uint32(info.Mode()))
-				if !protocol.IsDeleted(cf.Flags) && cf.Modified == info.ModTime().Unix() && protocol.IsDirectory(cf.Flags) && permUnchanged {
+				if !protocol.IsDeleted(cf.Flags) && protocol.IsDirectory(cf.Flags) && permUnchanged {
 					if debug {
 						l.Debugln("unchanged:", cf)
 					}