Struct git2::PackBuilder
source · pub struct PackBuilder<'repo> { /* private fields */ }
Expand description
A builder for creating a packfile
Implementations§
source§impl<'repo> PackBuilder<'repo>
impl<'repo> PackBuilder<'repo>
sourcepub fn insert_object(
&mut self,
id: Oid,
name: Option<&str>,
) -> Result<(), Error>
pub 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.
sourcepub fn insert_tree(&mut self, id: Oid) -> Result<(), Error>
pub 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.
sourcepub fn insert_commit(&mut self, id: Oid) -> Result<(), Error>
pub 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.
sourcepub fn insert_walk(&mut self, walk: &mut Revwalk<'_>) -> Result<(), Error>
pub 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.
sourcepub fn insert_recursive(
&mut self,
id: Oid,
name: Option<&str>,
) -> Result<(), Error>
pub 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.
sourcepub fn write_buf(&mut self, buf: &mut Buf) -> Result<(), Error>
pub 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.
sourcepub fn foreach<F>(&mut self, cb: F) -> Result<(), Error>
pub fn foreach<F>(&mut self, cb: F) -> Result<(), Error>
Create the new pack and pass each object to the callback.
sourcepub fn set_progress_callback<F>(&mut self, progress: F) -> Result<(), Error>
pub fn set_progress_callback<F>(&mut self, progress: F) -> Result<(), Error>
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.
sourcepub fn unset_progress_callback(&mut self) -> Result<(), Error>
pub fn unset_progress_callback(&mut self) -> Result<(), Error>
Remove the current progress callback. See set_progress_callback
to
set the progress callback.
sourcepub fn set_threads(&mut self, threads: u32) -> u32
pub fn set_threads(&mut self, threads: u32) -> u32
Set the number of threads to be used.
Returns the number of threads to be used.
sourcepub fn object_count(&self) -> usize
pub fn object_count(&self) -> usize
Get the total number of objects the packbuilder will write out.
sourcepub fn written(&self) -> usize
pub fn written(&self) -> usize
Get the number of objects the packbuilder has already written out.
sourcepub fn hash(&self) -> Option<Oid>
👎Deprecated: use name()
to retrieve the filename
pub fn hash(&self) -> Option<Oid>
name()
to retrieve the filenameGet 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.
sourcepub fn name(&self) -> Option<&str>
pub fn name(&self) -> Option<&str>
Get the unique name for the resulting packfile.
The packfile’s name is derived from the packfile’s content. This is only correct after the packfile has been written.
Returns None
if the packfile has not been written or if the name is
not valid utf-8.
sourcepub fn name_bytes(&self) -> Option<&[u8]>
pub fn name_bytes(&self) -> Option<&[u8]>
Get the unique name for the resulting packfile, in bytes.
The packfile’s name is derived from the packfile’s content. This is only correct after the packfile has been written.