summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Straub <bs@github.com>2013-04-15 11:42:34 -0700
committerBen Straub <bs@github.com>2013-04-15 11:42:34 -0700
commit4291ad078128003ad6d4ac6fb58244f3343ad87a (patch)
tree639ec6492b4333a211898d06594b3cd94619b69a
parentec7e240ba4a3277a94def51005d2558d02cb8c3c (diff)
downloadlibgit2-4291ad078128003ad6d4ac6fb58244f3343ad87a.tar.gz
Reintroduce git_revparse_single.
-rw-r--r--include/git2/revparse.h14
-rw-r--r--src/revparse.c2
2 files changed, 15 insertions, 1 deletions
diff --git a/include/git2/revparse.h b/include/git2/revparse.h
index 7fe910b45..2bbbaa5e1 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 7842c49b7..5f591406e 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;