Commit 2b397327e66e0e587e67df5a7803286db0f84ea0

Vicent Marti 2011-06-06T01:54:25

refs: Improve error messages

diff --git a/src/refs.c b/src/refs.c
index c21c958..7aaa1e7 100644
--- a/src/refs.c
+++ b/src/refs.c
@@ -903,8 +903,11 @@ static int packed_write(git_repository *repo)
 		 * this is a disaster */
 		assert(ref->ref.type & GIT_REF_OID);
 
-		if ((error = packed_find_peel(ref)) < GIT_SUCCESS)
+		if ((error = packed_find_peel(ref)) < GIT_SUCCESS) {
+			error = git__throw(GIT_EOBJCORRUPTED, "A reference cannot be peeled");
 			goto cleanup;
+		}
+
 
 		if ((error = packed_write_ref(ref, &pack_file)) < GIT_SUCCESS)
 			goto cleanup;
@@ -1437,7 +1440,9 @@ int git_reference_delete(git_reference *ref)
 		if ((error = packed_load(ref->owner)) < GIT_SUCCESS)
 			return git__rethrow(error, "Failed to delete reference");
 		
-		git_hashtable_remove(ref->owner->references.packfile, ref->name);
+		if (git_hashtable_remove(ref->owner->references.packfile, ref->name) < GIT_SUCCESS)
+			return git__throw(GIT_ENOTFOUND, "Reference not found");
+
 		error = packed_write(ref->owner);
 	} else {
 		char full_path[GIT_PATH_MAX];