Merge pull request #1723 from calmh/bug-1722

Handle conflict with local delete (fixes #1722)
This commit is contained in:
Audrius Butkevicius 2015-04-28 10:39:22 +01:00
commit 19a2042746

View File

@ -1246,5 +1246,13 @@ func moveForConflict(name string) error {
ext := filepath.Ext(name) ext := filepath.Ext(name)
withoutExt := name[:len(name)-len(ext)] withoutExt := name[:len(name)-len(ext)]
newName := withoutExt + time.Now().Format(".sync-conflict-20060102-150405") + 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
} }