]> git.proxmox.com Git - libgit2.git/commitdiff
refs: Improve error messages
authorVicent Marti <tanoku@gmail.com>
Sun, 5 Jun 2011 23:54:25 +0000 (01:54 +0200)
committerVicent Marti <tanoku@gmail.com>
Sun, 5 Jun 2011 23:54:25 +0000 (01:54 +0200)
src/refs.c

index c21c9583d28ef047ce2535b7ce1ae5b2a65dcf1e..7aaa1e775b72be078ad2d381b46b04aaaa6ccc12 100644 (file)
@@ -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];