Skip to content

Versions and conflicts

Last writer wins, and the loser is kept. When two Macs edit the same note before either has synced, the newer edit becomes the note. The version it displaced goes to the server's history rather than into your file.

No conflict copies appear in your vault. Nothing is merged behind your back. note.md and note (conflicted copy).md are not a thing here.

Being told about it

Halcyon puts a card on screen and leaves it there until you dismiss it:

A note was edited in two places

Sync kept the newer copy of each; the version it displaced is in the note's history for 30 days. Open one to read or restore it.

Each note it names is a button that opens straight onto that note's versions. Opening one isn't the same as dismissing the card, so you can look at all of them and still have the list.

Browsing versions

File → Browse Versions…, or Browse the note's versions in the ⌘K palette. It works for any note in a synced vault, not only ones that conflicted.

The version history sheet: a list of versions on the left, a read-only rendered preview on the right

The server keeps 30 days, encrypted like the notes themselves. Each entry shows when it landed and how big it was, with a marker when there's something to say about it:

MarkerMeaning
overwroteThis edit landed over another Mac's copy and won the race
overwrittenA conflicting edit overwrote this copy: the version you nearly lost
deletedRecords a delete. Nothing to preview or restore
renamedArrived as half of a rename

Selecting a version shows a read-only preview of it, rendered the same way the preview pane renders anything else.

Restoring

Restore this version writes it to the file as an ordinary edit.

That's the whole mechanism, and it has two consequences worth knowing:

  • It syncs out like anything else you type, so your other Mac gets it the normal way.
  • The version you restored from is still in the list afterwards. History only grows, so restoring is never destructive and you can restore your way back.

If the note is open, the editor adopts the restored content the same way it adopts any change on disk. With unsaved changes in the buffer, the usual guard applies and nothing is discarded.

Why the count seems low

History records versions the server saw, so a note only has entries from the point it started syncing. Local edits made before you turned sync on aren't in there, and neither is every keystroke: each sync pass pushes the state of the file at that moment.

For a full record of everything a note has ever been, put the vault in git. That works, and it's one of the reasons the notes are plain files.

Halcyon is a markdown notes app for macOS.