diff --git a/include/git2/pack.h b/include/git2/pack.h index 7e28a67e8..94d5fc6a1 100644 --- a/include/git2/pack.h +++ b/include/git2/pack.h @@ -87,6 +87,20 @@ GIT_EXTERN(int) git_packbuilder_write(git_packbuilder *pb, const char *file); */ GIT_EXTERN(int) git_packbuilder_foreach(git_packbuilder *pb, int (*cb)(void *buf, size_t size, void *data), void *data); +/** + * Get the total number of objects the packbuilder will write out + * + * @param pb the packbuilder + */ +GIT_EXTERN(uint32_t) git_packbuilder_object_count(git_packbuilder *pb); + +/** + * Get the number of objects the packbuilder has already written out + * + * @param pb the packbuilder + */ +GIT_EXTERN(uint32_t) git_packbuilder_written(git_packbuilder *pb); + /** * Free the packbuilder and all associated data * diff --git a/src/pack-objects.c b/src/pack-objects.c index 8861084e1..7136d87eb 100644 --- a/src/pack-objects.c +++ b/src/pack-objects.c @@ -1292,6 +1292,16 @@ int git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *oid) return 0; } +uint32_t git_packbuilder_object_count(git_packbuilder *pb) +{ + return pb->nr_objects; +} + +uint32_t git_packbuilder_written(git_packbuilder *pb) +{ + return pb->nr_written; +} + void git_packbuilder_free(git_packbuilder *pb) { if (pb == NULL)