Sebastian Thielmake fmte0438074 years agoHistory
28 lines · 1.2 KB · Rust
RawDownload
use std::{borrow::Cow, convert::TryInto}; use git_ref::FullNameRef;use git_validate::reference::name::Error as ValidateNameError; use crate::bstr::BStr; impl crate::Repository {    /// Returns a reference to the remote associated with the given `short_branch_name`, typically `main` instead of `refs/heads/main`.    /// Returns `None` if the remote reference was not found.    /// May return an error if the reference is invalid.    pub fn remote_ref(&self, short_branch_name: &str) -> Option<Result<Cow<'_, FullNameRef>, ValidateNameError>> {        self.config            .resolved            .string("branch", Some(short_branch_name), "merge")            .map(|v| match v {                Cow::Borrowed(v) => v.try_into().map(Cow::Borrowed),                Cow::Owned(v) => v.try_into().map(Cow::Owned),            })    }     /// Returns the name of the remote associated with the given `short_branch_name`, typically `main` instead of `refs/heads/main`.    /// In some cases, the returned name will be an URL.    /// Returns `None` if the remote was not found.    pub fn branch_remote_name(&self, short_branch_name: &str) -> Option<Cow<'_, BStr>> {        self.config.resolved.string("branch", Some(short_branch_name), "remote")    }}