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