From 68a146c1ae580f0828dd193a749aac4063aa4500 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Fri, 29 Apr 2011 11:45:42 +0200 Subject: [PATCH] refs: don't loose info on resolve error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Typical use is git_reference_resolve(&ref, ref). Currently, if there is an error, ref will point to NULL, causing the user to lose that reference. Always update resolved_ref instead of just on finding an OID ref, storing the last valid reference in it. This change helps simplify the code for allowing root commits. Signed-off-by: Carlos Martín Nieto --- src/refs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/refs.c b/src/refs.c index 17ec2915f..b88e047e1 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1480,8 +1480,9 @@ int git_reference_resolve(git_reference **resolved_ref, git_reference *ref) for (i = 0; i < MAX_NESTING_LEVEL; ++i) { reference_symbolic *ref_sym; + *resolved_ref = ref; + if (ref->type & GIT_REF_OID) { - *resolved_ref = ref; return GIT_SUCCESS; }