collin/anvil
RenderedSource
| 1 | # Vendored: gitserver-core |
| 2 | |
| 3 | This is a vendored, modified copy of the `gitserver-core` crate from |
| 4 | [WJQSERVER/gitserver](https://github.com/WJQSERVER/gitserver), which implements |
| 5 | the server side of the git wire protocol (pkt-line, protocol v2 `ls-refs` / |
| 6 | `fetch` / `upload-pack`, and `receive-pack`) on top of `gix` — the piece gix |
| 7 | itself does not provide. |
| 8 | |
| 9 | - **Upstream commit:** `3cec05b02eea3220c67782e4d9d0404d8b001aa3` (2026-04-27) |
| 10 | - **License:** MPL-2.0 (see `LICENSE`); upstream MIT material noted in |
| 11 | `UPSTREAM-LICENSE` / `NOTICE`. MPL is file-level copyleft: modifications to |
| 12 | these files stay MPL, but anvil as a whole may carry its own license. |
| 13 | |
| 14 | ## Why vendored |
| 15 | |
| 16 | We vendor rather than depend on crates.io so we can (1) bump `gix` from the |
| 17 | upstream-pinned 0.80 to the workspace version (0.84) and keep it in lockstep |
| 18 | with the rest of anvil, and (2) modify the protocol code as `anvil-git` evolves. |
| 19 | |
| 20 | `anvil-git` wraps this crate behind its own interface so the dependency can be |
| 21 | incrementally replaced with an upstream-shaped, gix-native implementation. |
| 22 | |
| 23 | ## Local modifications |
| 24 | |
| 25 | - `Cargo.toml`: standalone manifest using the anvil workspace's `gix` (0.84) and |
| 26 | `gix-pack` (0.71) instead of upstream's pinned 0.80 / 0.67. |
| 27 | - Source changes required by the gix version bump are recorded in git history. |