From dad4a4d582c55394031f8e78a4994da47fca7540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Mart=C3=ADn=20Nieto?= Date: Tue, 29 Mar 2011 10:47:48 +0200 Subject: [PATCH] rename: don't return early if the target ref exists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Carlos Martín Nieto --- src/refs.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/refs.c b/src/refs.c index 20c1d001f..ae745e579 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1050,12 +1050,14 @@ int git_reference_rename_internal(git_reference *ref, const char *new_name, int if (error < GIT_SUCCESS) return error; - /* Ensure we're not going to overwrite an existing reference */ + /* Ensure we're not going to overwrite an existing reference + unless the user has allowed us */ error = git_reference_lookup(&looked_up_ref, ref->owner, new_name); if (error == GIT_SUCCESS && !force) return GIT_EEXISTS; - if (error != GIT_ENOTFOUND) + if (error < GIT_SUCCESS && + error != GIT_ENOTFOUND) return error;