On this page:
git_  packbuilder_  foreach
git_  packbuilder_  free
git_  packbuilder_  hash
git_  packbuilder_  insert
git_  packbuilder_  insert_  commit
git_  packbuilder_  insert_  recur
git_  packbuilder_  insert_  tree
git_  packbuilder_  insert_  walk
git_  packbuilder_  new
git_  packbuilder_  object_  count
git_  packbuilder_  set_  callbacks
git_  packbuilder_  set_  threads
git_  packbuilder_  write
git_  packbuilder_  written
8.12

26 Packbuilder🔗ℹ

 (require libgit2/include/packbuilder) package: libgit2

procedure

(git_packbuilder_foreach pb cb payload)  integer?

  pb : packbuilder?
  cb : git_packbuilder_foreach_cb
  payload : bytes?
Create the new pack and pass each object to the callback

procedure

(git_packbuilder_free pb)  void?

  pb : packbuilder?
Free the packbuilder and all associated data

procedure

(git_packbuilder_hash pb)  oid?

  pb : packbuilder?
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.

procedure

(git_packbuilder_insert pb id name)  integer?

  pb : packbuilder?
  id : oid?
  name : string?
Insert a single object

For an optimal pack it’s mandatory to insert objects in recency order, commits followed by trees and blobs.

procedure

(git_packbuilder_insert_commit pb id)  integer?

  pb : packbuilder?
  id : oid?
Insert a commit object

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

procedure

(git_packbuilder_insert_recur pb id name)  integer?

  pb : packbuilder?
  id : oid?
  name : string?
Recursively insert an object and its referenced objects

Insert the object as well as any object it references.

procedure

(git_packbuilder_insert_tree pb id)  integer?

  pb : packbuilder?
  id : oid?
Insert a root tree object

This will add the tree as well as all referenced trees and blobs.

procedure

(git_packbuilder_insert_walk pb walk)  integer?

  pb : packbuilder?
  walk : revwalk?
Insert objects as given by the walk

Those commits and all objects they reference will be inserted into the packbuilder.

procedure

(git_packbuilder_new repo)  packbuilder?

  repo : repository?
Initialize a new packbuilder

procedure

(git_packbuilder_object_count pb)  integer?

  pb : packbuilder?
Get the total number of objects the packbuilder will write out

procedure

(git_packbuilder_set_callbacks pb    
  progress_cb    
  progress_cb_payload)  integer?
  pb : packbuilder?
  progress_cb : git_packbuilder_progress
  progress_cb_payload : bytes?
Set the callbacks for a packbuilder

procedure

(git_packbuilder_set_threads pb threads)  integer?

  pb : packbuilder?
  threads : integer?
Set number of threads to spawn

By default, libgit2 won’t spawn any threads at all; when set to 0, libgit2 will autodetect the number of CPUs.

procedure

(git_packbuilder_write pb    
  path    
  mode    
  progress_cb    
  progress_cb_payload)  integer?
  pb : packbuilder?
  path : string?
  mode : integer?
  progress_cb : git_transfer_progress_cb
  progress_cb_payload : bytes?
Write the new pack and corresponding index file to path.

procedure

(git_packbuilder_written pb)  integer?

  pb : packbuilder?
Get the number of objects the packbuilder has already written out