pub struct Repo { /* private fields */ }
Expand description
A Git Repository
Implementations§
Source§impl Repo
impl Repo
Sourcepub fn clone_from(url: &str, dir: Option<String>) -> IOResult<Self>
pub fn clone_from(url: &str, dir: Option<String>) -> IOResult<Self>
clone a git repo
§Arguments
url
- a string that holds de repo url from where we will clonedir
- an optional string with the path where the cloned repo will be out. If None the dir wil be created based on url.
§Examples
// will write the repo on /tmp/rs-git directory
use rs_git_lib::Repo;
let repo = Repo::clone_from("https://github.com/lnds/rs-git-lib.git", Some("/tmp/rs-git".to_string()));
Sourcepub fn refs(self) -> Vec<Ref>
pub fn refs(self) -> Vec<Ref>
return references of cloned repo
use rs_git_lib::Repo;
let repo = Repo::clone_from("https://github.com/lnds/rs-git-lib.git", Some("/tmp/rs-git".to_string()));
let refs = repo.unwrap().refs();
assert_eq!(refs[0].name, "HEAD");
assert_eq!(refs[1].name, "refs/heads/master");
Sourcepub fn dir(self) -> String
pub fn dir(self) -> String
return output directory of cloned repo
use rs_git_lib::Repo;
let repo = Repo::clone_from("https://github.com/lnds/rs-git-lib.git", Some("/tmp/rs-git".to_string())).unwrap();
assert_eq!(repo.dir(), "/tmp/rs-git");
Sourcepub fn count_objects(self) -> usize
pub fn count_objects(self) -> usize
return how many objects are in the repo
use rs_git_lib::Repo;
let repo = Repo::clone_from("https://github.com/lnds/rs-git-lib.git", Some("/tmp/rs-git".to_string())).unwrap();
assert!(repo.count_objects() > 1);
let repo = Repo::clone_from("https://github.com/lnds/redondeo.git", Some("/tmp/redondeo".to_string())).unwrap();
assert_eq!(repo.count_objects(), 25);
Sourcepub fn commits(&self) -> IOResult<Vec<GitObject>>
pub fn commits(&self) -> IOResult<Vec<GitObject>>
return the list of commit objects from current branch
use rs_git_lib::Repo;
let repo = Repo::clone_from("https://github.com/lnds/redondeo.git", Some("/tmp/redondeo".to_string())).unwrap();
let commits = repo.commits().unwrap();
assert_eq!(commits.len(), 5);
assert_eq!(commits[4].as_commit().unwrap().get_message(), "Initial commit".to_string())
pub fn read_object(&self, sha: &str) -> IOResult<GitObject>
Auto Trait Implementations§
impl Freeze for Repo
impl !RefUnwindSafe for Repo
impl Send for Repo
impl !Sync for Repo
impl Unpin for Repo
impl UnwindSafe for Repo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more