Commit 4291ad078128003ad6d4ac6fb58244f3343ad87a

Ben Straub 2013-04-15T11:42:34

Reintroduce git_revparse_single.

diff --git a/include/git2/revparse.h b/include/git2/revparse.h
index 7fe910b..2bbbaa5 100644
--- a/include/git2/revparse.h
+++ b/include/git2/revparse.h
@@ -20,6 +20,20 @@
  */
 GIT_BEGIN_DECL
 
+/**
+ *
+ * Find a single object, as specified by a revision string. See `man gitrevisions`,
+ * or http://git-scm.com/docs/git-rev-parse.html#_specifying_revisions for
+ * information on the syntax accepted.
+ *
+ * @param out pointer to output object
+ * @param repo the repository to search in
+ * @param spec the textual specification for an object
+ * @return 0 on success, GIT_ENOTFOUND, GIT_EAMBIGUOUS, GIT_EINVALIDSPEC or an error code
+ */
+GIT_EXTERN(int) git_revparse_single(git_object **out, git_repository *repo,
+		const char *spec);
+
 
 /**
  * Revparse flags.  These indicate the intended behavior of the spec passed to
diff --git a/src/revparse.c b/src/revparse.c
index 7842c49..5f59140 100644
--- a/src/revparse.c
+++ b/src/revparse.c
@@ -722,7 +722,7 @@ static int ensure_left_hand_identifier_is_not_known_yet(git_object *object, git_
 	return GIT_EINVALIDSPEC;
 }
 
-static int git_revparse_single(git_object **out, git_repository *repo, const char *spec)
+int git_revparse_single(git_object **out, git_repository *repo, const char *spec)
 {
 	size_t pos = 0, identifier_len = 0;
 	int error = -1, n;