Struct git2::PackBuilder [] [src]

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

A builder for creating a packfile

Methods

impl<'repo> PackBuilder<'repo>
[src]

fn insert_object(&mut self, id: Oid, name: Option<&str>) -> Result<()Error>

Insert a single object. For an optimal pack it's mandatory to insert objects in recency order, commits followed by trees and blobs.

fn insert_tree(&mut self, id: Oid) -> Result<()Error>

Insert a root tree object. This will add the tree as well as all referenced trees and blobs.

fn insert_commit(&mut self, id: Oid) -> Result<()Error>

Insert a commit object. This will add a commit as well as the completed referenced tree.

fn insert_walk(&mut self, walk: &mut Revwalk) -> Result<()Error>

Insert objects as given by the walk. Those commits and all objects they reference will be inserted into the packbuilder.

fn insert_recursive(&mut self, id: Oid, name: Option<&str>) -> Result<()Error>

Recursively insert an object and its referenced objects. Insert the object as well as any object it references.

fn write_buf(&mut self, buf: &mut Buf) -> Result<()Error>

Write the contents of the packfile to an in-memory buffer. The contents of the buffer will become a valid packfile, even though there will be no attached index.

fn foreach<F>(&mut self, cb: F) -> Result<()Error> where F: FnMut(&[u8]) -> bool

Create the new pack and pass each object to the callback.

fn set_progress_callback<F>(&mut self, progress: F) -> Result<()Error> where F: FnMut(PackBuilderStage, u32, u32) -> bool + 'repo

progress will be called with progress information during pack building. Be aware that this is called inline with pack building operations, so performance may be affected.

There can only be one progress callback attached, this will replace any existing one. See unset_progress_callback to remove the current progress callback without attaching a new one.

fn unset_progress_callback(&mut self) -> Result<()Error>

Remove the current progress callback. See set_progress_callback to set the progress callback.

fn object_count(&self) -> usize

Get the total number of objects the packbuilder will write out.

fn written(&self) -> usize

Get the number of objects the packbuilder has already written out.

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

Get the packfile's hash. A packfile's name is derived from the sorted hashing of all object names. This is only correct after the packfile has been written.

Trait Implementations

impl<'repo> Drop for PackBuilder<'repo>
[src]

fn drop(&mut self)

A method called when the value goes out of scope. Read more