For all non-trivial sync conflicts (if file difference isn’t just white space, etc), just keep all versions of the note. That’s it. simple. Doesn’t hurt to add this option and i imagine it’s easy to implement.
Much less of a chance of data loss going unnoticed.
IK there have been similar FRs (example), but for some reason they all suggest inferior UX solutions. Why manually constantly check some sync log history or worry if you missed a “sync with conflict merge happenned” notification when this could be easily added as an option?
Even if i notice after 2 yrs that some note had sync conflicts and some data was lost in the main version, i can just go check the other version and be sure.
Absence of this prevents me from using Obsidian sync and I don’t think im the only one.
A side by side view for the conflicted note, shared scrolling, and highlighting different lines would be a bonus, and totally not necessary for the start.
Sometimes Obsidian Sync’s merge conflicts lead to data loss, creating conflict files is a simple way to prevent it.
Use case or problem
Whenever a “merge conflict” happens, Obsidian Sync must choose to keep either the local version of the note, or the remote version of the note. When it chooses the remote version, the local version of the note is overwritten. This leads to a silent irreversible loss of that note version.
Note that in this case, the old local version of the note is not present in the version history, only the remote version is, therefore the version history doesn’t help here.
Proposed solution
Create a conflict file before the local note is overwritten. The old local version would be cloned into a new file, say: Task List - (ConflictFile-20250704-AndrewWorkPhone).md.
This is a simple solution to implement and its how many other sync tools handle merge conflicts, ensuring no data loss.
Alternative: An alternative solution would be that the local version is included in the note’s version history, but this may break the way the user expects “version history” to work.
PS:
The user should be able to toggle this option off, in case they don’t want to deal with conflict files.
I am assuming that Obsidian Sync doesn’t create conflict files since I’ve used it for a long time and I’ve never seen one.
Just to round out the examples you’ve shared, I’m including this extra case which is part of the merge cases, but with no duplicating. Exactly after “merging the confliced file”, the local note’s body was overwritten by the remote note’s body. Going from (many lines of text)->. I’ll leave the details in a thread, since it’s not appropriate here obviously.
In obsidian 1.9.7+, there will be an option to produce .conflict copies (that the user has to manually review) instead of using the current best effort merge algorithm.
This will ONLY apply to the case where a note has been independently edited on two different unsynchronized devices. The option is per device. Meaning that you need to set it in every device you want it.