| ... | @@ -286,12 +286,14 @@ for each version V the remote lists (Remote::versions) | ... | @@ -286,12 +286,14 @@ for each version V the remote lists (Remote::versions) |
| 286 | revisions, publish on C's stamp; then retire V (resolved, removed) | 286 | revisions, publish on C's stamp; then retire V (resolved, removed) |
| 287 | ``` | 287 | ``` |
| 288 | | 288 | |
| 289 | Each revision the merge writes is named after the version's revision it merged (a hash of it), | 289 | Merged page revisions and conflict page identities are named after the incoming version's |
| 290 | so "holds merged" is a lookup by revision identity. A version merged once, by this device or | 290 | revision (a hash of it), so "holds merged" is a lookup by revision identity. A version merged |
| 291 | another, merges as nothing the next time; two devices merging one version at once write the | 291 | once, by this device or another, merges as nothing the next time. Two devices merging the same |
| 292 | same names, and the merge of their two results finds everything held. Any device merges any | 292 | version onto the same current page state name corresponding outcomes alike. This deduplicates |
| 293 | version at once; nothing waits for the device that wrote it. A version of another section, or | 293 | retries; it does not make integrations from opposite primary bases order-independent or |
| 294 | one that cannot be read, is kept beside the file as `Name (Device).one` instead. | 294 | produce byte-identical files. Any device merges any version at once; nothing waits for the |
| | 295 | device that wrote it. A version of another section, or one that cannot be read, is kept beside |
| | 296 | the file as `Name (Device).one` instead. |
| 295 | | 297 | |
| 296 | On a cloud drive every read and write of a section file runs under `NSFileCoordinator`, so the | 298 | On a cloud drive every read and write of a section file runs under `NSFileCoordinator`, so the |
| 297 | iCloud daemon never swaps a file between the stamp check and the append. A file iCloud evicted | 299 | iCloud daemon never swaps a file between the stamp check and the append. A file iCloud evicted |