From 33c3370700083b9138b167778814d5af06ccf0b4 Mon Sep 17 00:00:00 2001 From: nulltoken Date: Wed, 4 Jul 2012 12:20:43 +0200 Subject: [PATCH] refs: deploy git_reference_has_log() --- include/git2/reflog.h | 2 ++ src/refs.c | 12 +++--------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/include/git2/reflog.h b/include/git2/reflog.h index f490e29de..8acba349b 100644 --- a/include/git2/reflog.h +++ b/include/git2/reflog.h @@ -53,6 +53,8 @@ GIT_EXTERN(int) git_reflog_write(git_reference *ref, const git_oid *oid_old, con /** * Rename the reflog for the given reference * + * The reflog to be renamed is expected to already exist + * * @param ref the reference * @param new_name the new name of the reference * @return 0 or an error code diff --git a/src/refs.c b/src/refs.c index 2aba83ef5..fbbb86689 100644 --- a/src/refs.c +++ b/src/refs.c @@ -1404,18 +1404,12 @@ int git_reference_rename(git_reference *ref, const char *new_name, int force) } /* - * Rename the reflog file. + * Rename the reflog file, if it exists. */ - git_buf_clear(&aux_path); - if (git_buf_join_n(&aux_path, '/', 3, ref->owner->path_repository, GIT_REFLOG_DIR, ref->name) < 0) + if ((git_reference_has_log(ref)) && (git_reflog_rename(ref, new_name) < 0)) goto cleanup; - if (git_path_exists(aux_path.ptr) == true) { - if (git_reflog_rename(ref, new_name) < 0) - goto cleanup; - } else { - giterr_clear(); - } + giterr_clear(); /* * Change the name of the reference given by the user.