pub struct NativeGitPlugin;Expand description
Native git-object handler.
Implementations§
Trait Implementations§
Source§impl ArchiveTypePlugin for NativeGitPlugin
impl ArchiveTypePlugin for NativeGitPlugin
Source§fn run_command(&self, cmd: &str, args: &[String]) -> Result<()>
fn run_command(&self, cmd: &str, args: &[String]) -> Result<()>
CLI-only string dispatch (§13.3). A server never comes through here:
it holds a GitStore and calls GitOps directly, typed.
refs is what that delegation looks like — open the store, call the trait
method, print what it returned, and carry no logic of its own. The three
commands beside it are older and are archive inspection, not store
operations: they read a sealed archive’s sections, which is a different
thing from a live store and is deliberately not modelled as a GitOps
call. They are left as they are rather than bent through a trait that does
not describe them.
Source§fn matches_path(&self, path: &str) -> bool
fn matches_path(&self, path: &str) -> bool
A git archive’s entries are either oids — the whole relative_path
is 40 or 64 lowercase hex characters — or the packs of a repository’s
cold tier, pack-<id>.pack / pack-<id>.idx.
Both are the same ecosystem and so belong to one handler (P-1). Which of
the two an archive holds is not a variant of the format: it is what the
writer had. gunnar’s repack() produces a consolidated pack and seals
that, because a pack preserves the pushing client’s own deflate and its
delta chains, and an inflated per-oid tier destroys both permanently.
Source§fn meta(&self) -> HandlerMeta
fn meta(&self) -> HandlerMeta
Self::name / Self::type_id; native handlers override it with a
richer record (aliases, ecosystem, extensions, commands).Source§fn schema_fields(&self) -> Vec<Field>
fn schema_fields(&self) -> Vec<Field>
base columns + pkg_type + these fields. Each Field’s name must
match the key the plugin uses in ExtensionRow::fields. Default: no columns.