Skip to content
Branch: master
Go to file
Code

Latest commit

taratatach committed f1bddb6 Jul 6, 2020
To give the `Sync` module the necessary hints that a given document
should be moved, we add a `moveFrom` attribute on the PouchDB record
describing its destination metadata.

Once the movement is synchronized, we delete this attribute for 2
reasons:
- to limit the records size and specifically their depth
- to make sure the `Sync` module won't read this hint again and try to
  perform the synchronize the movement once more

However, this final cleanup wasn't always performed. This means that
some users still have PouchDB records with a `moveFrom` attribute.

If those documents are not modified, this is not an issue. On the
other hand, a data migration could lead the `Sync` module to see a
change in the record and, seeing the attribute, try to perform the
move which will probably fail.
We've recently seen a lot of `Move destination already exists` errors
in Sentry which can illustrate this situation
(e.g. https://sentry.cozycloud.cc/sentry/cozy-desktop/issues/215790/).

To avoid those situations we can, like we did for the `overwrite`
attribute which is also removed after a change has been synchronized,
create a data migration to cleanup all the `moveFrom` attributes left
on records considered as synchronized.

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
.tx
Dec 18, 2017
.jq
Jun 25, 2020

README.md

Cozy logo

Cozy Drive for Desktop

Latest release Licence Windows build Linux & macOS build Code climate Coverage

Cozy Drive for Desktop allows you to synchronize the files stored in your Cozy with your laptop and/or desktop computer. It replicates your files on your hard drive and apply changes you made on them on other synced devices and on your online Cozy.

This is where the app is being developped. If you just want to install it, please see the Download page.

Contributing

Working on the code

License

Cozy Drive for Desktop is developed by Cozy Cloud and distributed under the AGPL v3 license.

You can’t perform that action at this time.