diff options
| author | 2026-03-29 08:37:54 +0000 | |
|---|---|---|
| committer | 2026-03-29 08:37:54 +0000 | |
| commit | fb9eb058f1c9b7cb26f33bbe679a85f530566641 (patch) | |
| tree | 6af9c973a54990c01128c6f500491c6aac3f85f4 | |
| parent | TODO: Do we want Close in interfaces at all? (diff) | |
| signature | No signature | |
furgit: Broad architecture ish docs? v0.1.134
| -rw-r--r-- | furgit.go | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -1,5 +1,18 @@ // Package furgit provides low-level Git operations. // +// Git libraries often center on a repository type that owns objects, refs, +// worktree state, and configuration behind a single facade. Furgit inverts +// that: objects are plain values, stored objects are separate types that +// associate objects with their object IDs, object storage and ref storage +// are sets of narrow interfaces consisting only of things that are truly +// reasonable for all implementations to satisfy, and every higher-level +// operation, such as commit traversal, reachability analysis, and +// recursive peeling, is built over those interfaces. +// +// While the [repository] package is where most users should begin, it only +// exists as one convenient composition of those pieces for the standard +// on-disk repository layout. Nothing should depend on it. +// // # Contract labels // // Many furgit APIs document concurrency, dependency ownership, value lifetime, |
