Struct git2::Reference [] [src]

pub struct Reference<'repo> {
    // some fields omitted
}

A structure to represent a git reference.

Methods

impl<'repo> Reference<'repo>

fn is_valid_name(refname: &str) -> bool

Ensure the reference name is well-formed.

fn raw(&self) -> *mut git_reference

Get access to the underlying raw pointer.

fn delete(&mut self) -> Result<(), Error>

Delete an existing reference.

This method works for both direct and symbolic references. The reference will be immediately removed on disk.

This function will return an error if the reference has changed from the time it was looked up.

fn is_branch(&self) -> bool

Check if a reference is a local branch.

fn is_note(&self) -> bool

Check if a reference is a note.

fn is_remote(&self) -> bool

Check if a reference is a remote tracking branch

fn is_tag(&self) -> bool

Check if a reference is a tag

fn name(&self) -> Option<&str>

Get the full name of a reference.

Returns None if the name is not valid utf-8.

fn name_bytes(&self) -> &[u8]

Get the full name of a reference.

fn shorthand(&self) -> Option<&str>

Get the full shorthand of a reference.

This will transform the reference name into a name "human-readable" version. If no shortname is appropriate, it will return the full name.

Returns None if the shorthand is not valid utf-8.

fn shorthand_bytes(&self) -> &[u8]

Get the full shorthand of a reference.

fn target(&self) -> Option<Oid>

Get the OID pointed to by a direct reference.

Only available if the reference is direct (i.e. an object id reference, not a symbolic one).

fn target_peel(&self) -> Option<Oid>

Return the peeled OID target of this reference.

This peeled OID only applies to direct references that point to a hard Tag object: it is the result of peeling such Tag.

fn symbolic_target(&self) -> Option<&str>

Get full name to the reference pointed to by a symbolic reference.

May return None if the reference is either not symbolic or not a valid utf-8 string.

fn symbolic_target_bytes(&self) -> Option<&[u8]>

Get full name to the reference pointed to by a symbolic reference.

Only available if the reference is symbolic.

fn resolve(&self) -> Result<Reference<'repo>, Error>

Resolve a symbolic reference to a direct reference.

This method iteratively peels a symbolic reference until it resolves to a direct reference to an OID.

If a direct reference is passed as an argument, a copy of that reference is returned.

fn peel(&self, kind: ObjectType) -> Result<Object<'repo>, Error>

Peel a reference to an object

This method recursively peels the reference until it reaches an object of the specified type.

fn rename(&mut self, new_name: &str, force: bool, msg: &str) -> Result<Reference<'repo>, Error>

Rename an existing reference.

This method works for both direct and symbolic references.

If the force flag is not enabled, and there's already a reference with the given name, the renaming will fail.

fn set_target(&mut self, id: Oid, reflog_msg: &str) -> Result<Reference<'repo>, Error>

Conditionally create a new reference with the same name as the given reference but a different OID target. The reference must be a direct reference, otherwise this will fail.

The new reference will be written to disk, overwriting the given reference.

Trait Implementations

impl<'repo> PartialOrd for Reference<'repo>

fn partial_cmp(&self, other: &Reference<'repo>) -> Option<Ordering>

fn lt(&self, other: &Rhs) -> bool

fn le(&self, other: &Rhs) -> bool

fn gt(&self, other: &Rhs) -> bool

fn ge(&self, other: &Rhs) -> bool

impl<'repo> Ord for Reference<'repo>

fn cmp(&self, other: &Reference<'repo>) -> Ordering

impl<'repo> PartialEq for Reference<'repo>

fn eq(&self, other: &Reference<'repo>) -> bool

fn ne(&self, other: &Rhs) -> bool

impl<'repo> Eq for Reference<'repo>

impl<'repo> Drop for Reference<'repo>

fn drop(&mut self)