Browse Source

Handle conflict with local delete (fixes #1722)

Jakob Borg 10 years ago
parent
commit
57ec2ff915
1 changed files with 9 additions and 1 deletions
  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
 }