Comments (6)
@JC-comp
I will look at this in more detail - however, please understand this .. your points are extreme edge cases.
Please note:
-
When using
--sync
or--monitor
the files online are the source of truth - thus the online file is the file to trust as correct and accurate and is the source for the local file copy. This is irrespective of if--resync
is being used.- In the case where the file exists locally (but not in-sync) , and there is a timestamp mismatch, but the file hash is the same, the offending file timestamp should be corrected
- In the case where the file exists locally (but not in-sync) , and there is a timestamp mismatch, but the file hash is different, the local file should be renamed, and then uploaded as a new file back to OneDrive.
- In the case where the file exists locally , and the file was previously in sync , if the local file will be replaced by the online version, as the online version is the source of truth.
-
When using
--local-first
(irrespective of--sync
or--monitor
or--resync
) the files locally are the source of truth - thus the local file is the file to trust as correct (content, timestamp etc) and accurate and is the source for the online file copy.- In the case where the file does not exist online, the file is uploaded
- In the case where the file exists (posix match) the online file is replaced. The older item can be retrieved online via file version history function online.
For all your extreme cases above, please replicate with the Microsoft OneDrive on a Windows platform without using files-on-demand and report back as to what the Windows client is doing.
Observations
Case 1-1 & Case 1-2
- 1.txt is an empty file and in-sync, thus, the online copy, because of the mode of operation being used (
--sync
) the online copy is what is being brought down. If--monitor
was being used, the moment the local file was edited, this would have been uploaded. - This is not a bug but an extreme edge case
- Replicate with the Microsoft OneDrive Windows Client and report back
Case 2-1 & Case 2-2
- 1.txt is an empty file and in-sync, and because
--local-first
is being used, the local file (the current empty file) is the source of truth. - The local file is modified, then the online
- The local file is uploaded, as the local file is the source of truth
- This is not a bug but an extreme edge case
- Replicate with the Microsoft OneDrive Windows Client and report back
Please can you replicate your cases using the Microsoft OneDrive Client on Windows and report back
from onedrive.
- I believe the cases I mentioned here are not rare extreme edge cases; they can easily occur when changes are made from both sides, even in monitor mode.
- Currently, the strategy here always selects one side to replace the other side in case of conflict. If this behavior is intentional and not a bug, it highlights the necessity for a timestamp-based first mode, which preserves the latest version across all sites, as initially requested in the rejected #2617.
- The Microsoft OneDrive Client on Windows operates only in singular mode. Microsoft's conflict resolution strategy dictates that the online version will always be preserved, while any conflicting local versions will be safely backed up with an appended host name postfix. So in all cases, the outcome results in two files: the online modification in "1.txt" and the local modification in "1-hostname.txt".
from onedrive.
@JC-comp
As per above - please provide evidence replicating your issue using Microsoft Windows - not theorising what may or may not happen.
Screen shots and visualisations of what is occurring when using Microsoft Windows & Windows OneDrive client please - not text based theory.
from onedrive.
@abraunegg
When both the local and remote files are modified simultaneously with the OneDrive app running, the final result remains consistent regardless of which side saves first. Microsoft ensures a local backup is created and preserves the online version.
from onedrive.
@JC-comp
Use Case 1-1 and Case 1-2 - not a bug
Use Case 2-1 and Case 2-2 resolved with fecec1b
Additionally, please read:
- https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-alpha-5/docs/client-architecture.md
- https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-alpha-5/docs/client-architecture.md#file-conflict-handling---default-operational-modes
- https://github.com/abraunegg/onedrive/blob/onedrive-v2.5.0-alpha-5/docs/client-architecture.md#file-conflict-handling---local-first-operational-mode
from onedrive.
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.
from onedrive.
Related Issues (20)
- Bug: Cannot install on Ubuntu 24.04 HOT 2
- Feature Request: Shell-Output HOT 2
- Bug: Cannot select/filter within Personal Shared Folders HOT 4
- Bug: Intermittent Yet Persistent Timeout Error with Microsoft OneDrive Service Despite Internet Connectivity HOT 3
- Feature Request: custom location of business shared folders HOT 2
- Bug: Non-systematic crashes on large repositories HOT 9
- Bug: Updated Remaining Free Space: 865972781056 but every file "Insufficient local disk space to download file" HOT 3
- Bug: Download only not working HOT 6
- Bug: HTML encoding requires to add filter entries twice HOT 24
- Bug: Uploading files using fragments stuck at 0% HOT 5
- Bug: WARNING: OneDrive API inconsistency - this file does not have any hash: ... HOT 3
- Bug: Incredible slow HOT 4
- Bug: When the local sync_dir is missing, all files in OneDrive get deleted HOT 4
- Bug: ERROR: File download size mis-match with random files HOT 4
- Feature Request: file sync (upload/download/delete) notifications HOT 8
- onedrive: depends on: libphobos2-ldc-shared100 (>= 1:1.30.0) but can not be installed HOT 3
- Bug: Incomplete drive list HOT 5
- Bug: opensuse repository key is expired HOT 8
- Bug: EXPKEYSIG Error when running apt update on the opensuse site HOT 6
- Bug: Ubuntu 24.04 OpenSUSE Build Service signing certificate expired HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from onedrive.