Kaynağa Gözat

ldbGenericReplace: correctly handle files with same version but different flags.

This fixes syncthing bug #819.
Jochen Voss 11 yıl önce
ebeveyn
işleme
481b2186cb
1 değiştirilmiş dosya ile 2 ekleme ve 1 silme
  1. 2 1
      internal/files/leveldb.go

+ 2 - 1
internal/files/leveldb.go

@@ -232,7 +232,8 @@ func ldbGenericReplace(db *leveldb.DB, folder, device []byte, fs []protocol.File
 			// marked a file as invalid, so handle that too.
 			var ef protocol.FileInfoTruncated
 			ef.UnmarshalXDR(dbi.Value())
-			if fs[fsi].Version > ef.Version || fs[fsi].Version != ef.Version {
+			if fs[fsi].Version > ef.Version ||
+				(fs[fsi].Version == ef.Version && fs[fsi].Flags != ef.Flags) {
 				if lv := ldbInsert(batch, folder, device, newName, fs[fsi]); lv > maxLocalVer {
 					maxLocalVer = lv
 				}