pub struct Reference;Expand description
Reference operations — resolve a named ref to an object id.
Implementations§
Source§impl Reference
impl Reference
Sourcepub fn resolve(repo: &Repository, name: &str) -> Result<ObjectId>
pub fn resolve(repo: &Repository, name: &str) -> Result<ObjectId>
Resolve a reference name (e.g., "HEAD", "refs/heads/main",
"main") to its target object id.
Uses git rev-parse --verify <name>.
Short names like "main" are resolved via git’s standard ref
resolution rules.
Sourcepub fn symbolic_target(repo: &Repository, name: &str) -> Result<Option<String>>
pub fn symbolic_target(repo: &Repository, name: &str) -> Result<Option<String>>
Return the symbolic target of a reference, if it is symbolic
(e.g., "HEAD" → "refs/heads/main").
Uses git symbolic-ref -q <name>.
Sourcepub fn list(repo: &Repository) -> Result<Vec<RefEntry>>
pub fn list(repo: &Repository) -> Result<Vec<RefEntry>>
Every local branch, remote-tracking branch and tag, in one call.
MG.35. crate::Branch::list answers “what branches are there”;
this answers “what refs are there, and where does each point” —
the question magit’s refs buffer exists for. One for-each-ref
rather than three walks plus an ahead/behind count per branch:
git computes %(upstream:track) while it is already reading the
ref, so the whole buffer costs a single invocation regardless of
how many branches the repository has.