Functions
2.1 Annotated Commit
2.2 Blame
2.3 Blob
2.4 Branch
2.5 Buffer
2.6 Checkout
2.7 Cherrypick
2.8 Clone
2.9 Commit
2.10 Config
2.11 Credentials
2.12 Describe
2.13 Diff
2.14 Fetch
2.15 Filter
2.16 Errors
2.17 Graph
2.18 Ignore
2.19 Index
2.20 Indexer
2.21 Global
2.22 Merge
2.23 Message
2.24 Note
2.25 Object
2.26 Object Database
2.27 Oid
2.28 Oid Array
2.29 Packbuilder
2.30 Patch
2.31 Pathspec
2.32 Proxy
2.33 Push
2.34 Rebase
2.35 Refdb
2.36 Reference
2.37 Reflog
2.38 Refspec
2.39 Remote
2.40 Repository
2.41 Reset
2.42 Revert
2.43 Revparse
2.44 Revwalk
2.45 Signature
2.46 Stash
2.47 Status
2.48 Strarray
2.49 Submodule
2.50 Tag
2.51 Tree
2.52 Treebuilder
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
7.7

2.29 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