Commit 6c9dc12b by Vicent Martí

Merge pull request #1501 from xavier-l/packbuilder-commit

Added function to insert commit into pack
parents 9a9de29d 0b90366c
...@@ -95,6 +95,18 @@ GIT_EXTERN(int) git_packbuilder_insert(git_packbuilder *pb, const git_oid *id, c ...@@ -95,6 +95,18 @@ GIT_EXTERN(int) git_packbuilder_insert(git_packbuilder *pb, const git_oid *id, c
GIT_EXTERN(int) git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *id); GIT_EXTERN(int) git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *id);
/** /**
* Insert a commit object
*
* This will add a commit as well as the completed referenced tree.
*
* @param pb The packbuilder
* @param id The oid of the commit
*
* @return 0 or an error code
*/
GIT_EXTERN(int) git_packbuilder_insert_commit(git_packbuilder *pb, const git_oid *id);
/**
* Write the new pack and the corresponding index to path * Write the new pack and the corresponding index to path
* *
* @param pb The packbuilder * @param pb The packbuilder
......
...@@ -1284,6 +1284,21 @@ static int cb_tree_walk(const char *root, const git_tree_entry *entry, void *pay ...@@ -1284,6 +1284,21 @@ static int cb_tree_walk(const char *root, const git_tree_entry *entry, void *pay
git_buf_cstr(&ctx->buf)); git_buf_cstr(&ctx->buf));
} }
int git_packbuilder_insert_commit(git_packbuilder *pb, const git_oid *oid)
{
git_commit *commit;
if (git_commit_lookup(&commit, pb->repo, oid) < 0 ||
git_packbuilder_insert(pb, oid, NULL) < 0)
return -1;
if (git_packbuilder_insert_tree(pb, git_commit_tree_id(commit)) < 0)
return -1;
git_commit_free(commit);
return 0;
}
int git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *oid) int git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *oid)
{ {
git_tree *tree; git_tree *tree;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment