Add three-way file root apply
This commit is contained in:
parent
d9150024dd
commit
606641dd4a
5 changed files with 602 additions and 27 deletions
|
|
@ -161,12 +161,15 @@ watermarks. Repeated remote file-root syncs retain the previous imported remote
|
|||
tree as the base and compare base/local/remote tree state. When both local and
|
||||
remote roots changed, geth records durable concurrent edit, delete/edit, or
|
||||
divergent rename conflicts instead of applying remote content. `geth cas root
|
||||
apply <root> --to <path>` is the first conservative
|
||||
materialization path: it creates missing files and directories from the CAS tree,
|
||||
does not delete extra local files, does not overwrite differing local files, and
|
||||
records conflicts for manual resolution. The daemon also has durable local
|
||||
file-conflict records with explicit resolution choices; richer three-way apply
|
||||
will extend those records instead of silently applying ambiguous remote changes.
|
||||
apply <root> --to <path>` is conservative when the target has no registered
|
||||
base: it creates missing files and directories from the CAS tree, does not
|
||||
delete extra local files, does not overwrite differing local files, and records
|
||||
conflicts for manual resolution. When the target path matches a registered
|
||||
local root with a previous scan, apply uses that scan as the base for a
|
||||
three-way base/local/remote check. It can safely accept remote creates, updates,
|
||||
deletes, and renames only when the current local filesystem still matches the
|
||||
base; ambiguous paths remain durable conflicts. The daemon also has durable
|
||||
local file-conflict records with explicit resolution choices.
|
||||
|
||||
As a bootstrap network path, `geth cas fetch <node-id> <hash>` dials an
|
||||
imported signed peer card over the daemon-owned Iroh control ALPN. The serving
|
||||
|
|
@ -176,7 +179,7 @@ before returning blob bytes. The requester verifies that the returned bytes hash
|
|||
to the requested BLAKE3 CAS hash before storing them. Successful fetches update
|
||||
durable local provider metadata keyed by CAS hash and peer node, which can be
|
||||
inspected through `geth cas providers <hash>`. Iroh-blobs provider/fetch
|
||||
integration and richer three-way file application are future work.
|
||||
integration is future work.
|
||||
|
||||
`geth-db` currently registers local SQLite paths as DB resources and reports
|
||||
local-only sync status plus a read-only SQLite schema summary/hash. It also
|
||||
|
|
|
|||
Loading…
Reference in a new issue