summaryrefslogtreecommitdiff
path: root/src/revparse.c
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2013-09-07 17:21:41 +0200
committernulltoken <emeric.fermas@gmail.com>2013-09-07 17:48:05 +0200
commita8d67afe42e6c79cb15383ceb1264f665dc4ad8d (patch)
tree60c807b9cdaeed0ad9d3fb0680d9241d0c157a75 /src/revparse.c
parent32e49929725a76d9871038f30e2ea67fe0e4a4f8 (diff)
downloadlibgit2-a8d67afe42e6c79cb15383ceb1264f665dc4ad8d.tar.gz
revparse: Prevent unnecessary odb backend calls
Diffstat (limited to 'src/revparse.c')
-rw-r--r--src/revparse.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/revparse.c b/src/revparse.c
index 329b96dbc..05ddc6c35 100644
--- a/src/revparse.c
+++ b/src/revparse.c
@@ -115,12 +115,9 @@ static int revparse_lookup_object(
if (error < 0 && error != GIT_ENOTFOUND)
return error;
- error = maybe_abbrev(object_out, repo, spec);
- if (!error)
- return 0;
-
- if (error < 0 && error != GIT_ENOTFOUND)
- return error;
+ if ((strlen(spec) < GIT_OID_HEXSZ) &&
+ ((error = maybe_abbrev(object_out, repo, spec)) != GIT_ENOTFOUND))
+ return error;
error = maybe_describe(object_out, repo, spec);
if (!error)