summaryrefslogtreecommitdiff
path: root/tests-clar/diff/diff_helpers.c
diff options
context:
space:
mode:
authorVicent Martí <tanoku@gmail.com>2012-02-22 16:06:33 -0800
committerVicent Martí <tanoku@gmail.com>2012-02-22 16:06:33 -0800
commit36d72a5125b28a381b240b1bc506bcf2d59c94b7 (patch)
tree9c9d5ffe6d0c344d1a0eb6f8015efebc4da47308 /tests-clar/diff/diff_helpers.c
parent8d36b253e2a96b493f45ebc89260627c002b0bab (diff)
parent0534641dfec001794ae9a83cfd1cfc7acaef97b7 (diff)
downloadlibgit2-36d72a5125b28a381b240b1bc506bcf2d59c94b7.tar.gz
Merge pull request #570 from arrbee/uniform-iterators
Uniform iterators for trees, index, and workdir
Diffstat (limited to 'tests-clar/diff/diff_helpers.c')
-rw-r--r--tests-clar/diff/diff_helpers.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/tests-clar/diff/diff_helpers.c b/tests-clar/diff/diff_helpers.c
new file mode 100644
index 000000000..b2dbe9ee7
--- /dev/null
+++ b/tests-clar/diff/diff_helpers.c
@@ -0,0 +1,22 @@
+#include "clar_libgit2.h"
+#include "diff_helpers.h"
+
+git_tree *resolve_commit_oid_to_tree(
+ git_repository *repo,
+ const char *partial_oid)
+{
+ size_t len = strlen(partial_oid);
+ git_oid oid;
+ git_object *obj;
+ git_tree *tree;
+
+ if (git_oid_fromstrn(&oid, partial_oid, len) == 0)
+ git_object_lookup_prefix(&obj, repo, &oid, len, GIT_OBJ_ANY);
+ cl_assert(obj);
+ if (git_object_type(obj) == GIT_OBJ_TREE)
+ return (git_tree *)obj;
+ cl_assert(git_object_type(obj) == GIT_OBJ_COMMIT);
+ cl_git_pass(git_commit_tree(&tree, (git_commit *)obj));
+ git_object_free(obj);
+ return tree;
+}