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 | which is still upstream's `main` HEAD as of 2026-08-25 — nothing to pull. |
| 11 | The newest upstream tag, `v0.0.3`, is *older* than this commit. |
| 12 | - **License:** MPL-2.0 (see `LICENSE`); upstream MIT material noted in |
| 13 | `UPSTREAM-LICENSE` / `NOTICE`. MPL is file-level copyleft: modifications to |
| 14 | these files stay MPL, but anvil as a whole may carry its own license. |
| 15 | |
| 16 | ## Why vendored |
| 17 | |
| 18 | We vendor rather than depend on crates.io so we can (1) bump `gix` from the |
| 19 | upstream-pinned 0.80 to the workspace version (0.87) and keep it in lockstep |
| 20 | with the rest of anvil, and (2) modify the protocol code as `anvil-git` evolves. |
| 21 | |
| 22 | The gix gap only widens: upstream has been on 0.80 since April, so each gix |
| 23 | bump here is ours to port, and checking upstream first is cheap but has so far |
| 24 | never produced anything. |
| 25 | |
| 26 | `anvil-git` wraps this crate behind its own interface so the dependency can be |
| 27 | incrementally replaced with an upstream-shaped, gix-native implementation. |
| 28 | |
| 29 | ## Local modifications |
| 30 | |
| 31 | - `Cargo.toml`: standalone manifest using the anvil workspace's `gix` (0.87) and |
| 32 | `gix-pack` (0.74) instead of upstream's pinned 0.80 / 0.67. |
| 33 | - `Cargo.toml`: `[lints] workspace = true`, so the vendored crate is held to |
| 34 | anvil's lint configuration like any other member. |
| 35 | - Source changes required by the gix version bump are recorded in git history. |