lib/model: Check availability later to catch renames (#5097)
This commit is contained in:
committed by
Audrius Butkevicius
parent
9028969617
commit
ff3cbdc90d
@@ -349,18 +349,8 @@ func (f *sendReceiveFolder) processNeeded(ignores *ignore.Matcher, folderFiles *
|
||||
changed++
|
||||
|
||||
case file.Type == protocol.FileInfoTypeFile:
|
||||
// Queue files for processing after directories and symlinks, if
|
||||
// it has availability.
|
||||
|
||||
devices := folderFiles.Availability(file.Name)
|
||||
for _, dev := range devices {
|
||||
if _, ok := f.model.Connection(dev); ok {
|
||||
f.queue.Push(file.Name, file.Size, file.ModTime())
|
||||
changed++
|
||||
return true
|
||||
}
|
||||
}
|
||||
f.newError("pull", file.Name, errNotAvailable)
|
||||
// Queue files for processing after directories and symlinks.
|
||||
f.queue.Push(file.Name, file.Size, file.ModTime())
|
||||
|
||||
case runtime.GOOS == "windows" && file.IsSymlink():
|
||||
file.SetUnsupported(f.shortID)
|
||||
@@ -492,8 +482,16 @@ nextFile:
|
||||
}
|
||||
}
|
||||
|
||||
// Handle the file normally, by coping and pulling, etc.
|
||||
f.handleFile(fi, copyChan, finisherChan, dbUpdateChan)
|
||||
devices := folderFiles.Availability(fileName)
|
||||
for _, dev := range devices {
|
||||
if _, ok := f.model.Connection(dev); ok {
|
||||
changed++
|
||||
// Handle the file normally, by coping and pulling, etc.
|
||||
f.handleFile(fi, copyChan, finisherChan, dbUpdateChan)
|
||||
continue nextFile
|
||||
}
|
||||
}
|
||||
f.newError("pull", fileName, errNotAvailable)
|
||||
}
|
||||
|
||||
return changed, fileDeletions, dirDeletions, nil
|
||||
|
||||
Reference in New Issue
Block a user