Code Monkey home page Code Monkey logo

Comments (6)

FerLuisxd avatar FerLuisxd commented on June 9, 2024 1

I think a way to go is to let the user decide if read-only or not and also prioritize the version to keep with a parameter
The default should be the newer file (the one that was edited at last)
Really interested in that

from onedriver.

jstaf avatar jstaf commented on June 9, 2024

Storing and syncing the changes gets really dicey if there are changes made to the document while you are offline. What happens if you make a bunch of changes on a plane (without internet access), get home and make some changes on a different computer (with internet access), and then turn the original computer (from the plane) back on again the next day? Which changes should we keep? OneDrive doesn't exactly do conflict resolution, one set of changes is going to wipe the other out.

Right now the read-only behavior is the only way I've really thought of that avoids losing user data. (Open to ideas though!)

(Funny that you mention GVFS, I actually wrote this because there was no GVFS support for OneDrive.)

from onedriver.

joaquinvacas avatar joaquinvacas commented on June 9, 2024

Didn't thought about this, I'll have to checkout what's the OneDrive's actual behavior.

Somehow, it has to check if the one modified in the plane is older than the modified on the second device with internet access, but don't know, seems to be a little messy for a logical and easy solution. Rename (make a copy)? Replace? Ask user? Whatever.

from onedriver.

abraunegg avatar abraunegg commented on June 9, 2024

@FerLuisxd

the one that was edited at last

That may or may not be the right one to keep ... for example performing a 'CTRL-A' to select all then delete then save .... If I only keep that version - if that action was done accidentally ... undesirable data loss would occur.

This is why, for the 'onedrive' client, when there is a conflict locally, the local file is renamed so that the local file is preserved - to allow the user to determine what to keep, what data to keep and to avoid any potential data loss scenarios.

from onedriver.

dgtlrift avatar dgtlrift commented on June 9, 2024

Sounds like version control where if its a simple text file, then a 3-way diff merge could/should handle it, but with Word docs being binary files, this could get intractable - unless OneDrive has a concept to notify accessing apps that the document has changed out from under it and an application level 3-way merge is required.

from onedriver.

jstaf avatar jstaf commented on June 9, 2024

Yeah unfortunately there is no way to perform a 3-way merge or rename the local copy because we have no way to tell an app that the file has been modified (or the name has changed) while it is open. Apps like LibreOffice and KeepassXC with special saving behavior are particularly sensitive to this.

This is why, for the 'onedrive' client, when there is a conflict locally, the local file is renamed so that the local file is preserved - to allow the user to determine what to keep, what data to keep and to avoid any potential data loss scenarios.

This can still lead to data loss, as an example: a user is editing a file in LibreOffice that has been changed remotely, saves but does not quit, app does a sync (the local file conflicts with the remote file, so the local file is renamed as part of the sync even though the app doesn't know about it), and then user saves the file again. LibreOffice doesn't know that the local file was renamed, so now it overwrites the changes from the remote that the user never saw. The remote changes have now been wiped by the local version.

from onedriver.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.