Expand description
Abstraction of git2
providing a simple interface
for easily iterating over commits and changes in a
Git repository.
In short, both git log --name-status
and
git log --stat --format=fuller
can be
implemented with just a handful of lines.
§Example
let repo = git_commits::open("path-to-repo")?;
for commit in repo.commits()? {
// The `commit` contains the message, author, committer, time, etc
let commit = commit?;
println!("\n{}", commit);
for change in commit.changes()? {
// The `change` contains change kind, old/new path, old/new sizes, etc
let change = change?;
println!(" {}", change);
// match change {
// Change::Added(change) => {}
// Change::Modified(change) => {}
// Change::Deleted(change) => {}
// Change::Renamed(change) => {}
// }
}
}
Structs§
- Added
- Changes
- Commit
- Commits
- Deleted
- GitError
- A structure to represent errors coming out of libgit2.
- Modified
- Renamed
- Repo
- Signature
- Sort
- Orderings that may be specified for Revwalk iteration.