Option to let user manually resolve sync conflicts

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.

5 Likes

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.

Related feature requests (optional)

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.

Except in certain cases, Obsidian resolves conflicts by merging the versions.

Data loss is possible in the non-merge cases. It is rare with merges, but there sometimes corruption happens: Obsidian Sync incorrectly duplicates sections of files.

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.

2 Likes

Is it 1.9.7+ or >1.9.7 ? I don’t see the option anywhere in 1.9.7

1 Like

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.