Record file root sync conflicts
This commit is contained in:
parent
533ffc8c2a
commit
475c6a4a2a
8 changed files with 324 additions and 14 deletions
|
|
@ -118,7 +118,9 @@ The bootstrap implementation provides:
|
|||
- local file-root commands: `geth cas root add/list/scan/sync/apply`; root sync
|
||||
pulls authorized remote tree metadata and CAS tree bytes into a peer-qualified
|
||||
remote root, and apply materializes a tree without deleting files or
|
||||
overwriting local edits
|
||||
overwriting local edits. Repeated syncs keep the previous imported remote
|
||||
tree as the base and record durable conflicts when local and remote roots
|
||||
both changed.
|
||||
- local file conflict metadata commands:
|
||||
`geth cas conflict record/list/resolve`
|
||||
- local DB resource registration: `geth db add <name> <path>` and
|
||||
|
|
@ -194,6 +196,10 @@ local daemon skip unchanged or unauthorized streams.
|
|||
File roots advertise `cas-tree:<name>` watermarks when the caller has
|
||||
`cas.fetch`; background live-sync imports updated tree metadata and CAS tree
|
||||
bytes into peer-qualified remote roots without writing files.
|
||||
When a previous imported remote tree is available, sync compares that base
|
||||
against the current local same-named root and the newly imported remote tree.
|
||||
Concurrent edit, delete/edit, and divergent rename conflicts are recorded in
|
||||
the local conflict table for later resolution.
|
||||
`geth cas root apply <root> --to <path>` can then materialize that tree locally:
|
||||
it creates missing directories/files, never deletes extra files, never
|
||||
overwrites differing local files, and records conflicts for manual resolution.
|
||||
|
|
|
|||
Loading…
Reference in a new issue