Monorepo management for opam overlays
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

ocaml-merkle-sync: generic Merkle DAG sync; irmin Sync.S module type

ocaml-merkle-sync: reusable sync primitives for any content-addressed DAG.
- Layer 1: anti-entropy gossip (branch head exchange, O(log n))
- Layer 2: merkle descent (DAG diff by hash, dependency-order transfer)
- Bloom filter (FNV-1a, ~1% FP rate)
15 tests passing. Fuzz harness for bloom properties.

irmin/lib/sync.ml: Sync.S module type — discover/locate/fetch/push.
Each backend provides its own implementation.

Also: dune fmt across affected packages.

+3 -5
+1 -3
lib/git_cli.ml
··· 229 229 try 230 230 let src_repo = open_local ~sw ~fs src_fpath in 231 231 let dst_repo = open_local ~sw ~fs repo in 232 - match 233 - Git.Fetch.local ~src:src_repo ~dst:dst_repo ~ref_name:branch 234 - with 232 + match Git.Fetch.local ~src:src_repo ~dst:dst_repo ~ref_name:branch with 235 233 | Ok hash -> Ok (Git.Hash.to_hex hash) 236 234 | Error (`Msg msg) -> Error (Io_error msg) 237 235 with e -> Error (Io_error (Printexc.to_string e)))
+2 -2
lib/git_cli.mli
··· 141 141 and returns the commit hash of [FETCH_HEAD]. 142 142 143 143 For [file://] URLs and bare local paths the fetch goes through 144 - {!Git.Fetch.local} — pure OCaml, no [git] subprocess. HTTP/SSH URLs 145 - still shell out to [git fetch]. 144 + {!Git.Fetch.local} — pure OCaml, no [git] subprocess. HTTP/SSH URLs still 145 + shell out to [git fetch]. 146 146 147 147 @param sw 148 148 Eio switch holding any Repository handles opened by the native local fetch