Bläddra i källkod

Handle conflict with local delete (fixes #1722)

Jakob Borg 10 år sedan
förälder
incheckning
57ec2ff915
1 ändrade filer med 9 tillägg och 1 borttagningar
  1. 9 1
      internal/model/rwfolder.go

+ 9 - 1
internal/model/rwfolder.go

@@ -1246,5 +1246,13 @@ func moveForConflict(name string) error {
 	ext := filepath.Ext(name)
 	withoutExt := name[:len(name)-len(ext)]
 	newName := withoutExt + time.Now().Format(".sync-conflict-20060102-150405") + ext
-	return os.Rename(name, newName)
+	err := os.Rename(name, newName)
+	if os.IsNotExist(err) {
+		// We were supposed to move a file away but it does not exist. Either
+		// the user has already moved it away, or the conflict was between a
+		// remote modification and a local delete. In either way it does not
+		// matter, go ahead as if the move succeeded.
+		return nil
+	}
+	return err
 }