This should be merged into patch : 1685d87 receive-pack.c: use a reference transaction for updating the refs Signed-off-by: Ronnie Sahlberg <sahlberg@xxxxxxxxxx> --- builtin/receive-pack.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c index 2575d06..64d54f8 100644 --- a/builtin/receive-pack.c +++ b/builtin/receive-pack.c @@ -479,7 +479,7 @@ static char *update(struct command *cmd, struct shallow_info *si) /* only refs/... are allowed */ if (!starts_with(name, "refs/") || check_refname_format(name + 5, 0)) { rp_error("refusing to create funny ref '%s' remotely", name); - return "funny refname"; + return xstrdup("funny refname"); } strbuf_addf(&namespaced_name_buf, "%s%s", get_git_namespace(), name); @@ -497,20 +497,20 @@ static char *update(struct command *cmd, struct shallow_info *si) rp_error("refusing to update checked out branch: %s", name); if (deny_current_branch == DENY_UNCONFIGURED) refuse_unconfigured_deny(); - return "branch is currently checked out"; + return xstrdup("branch is currently checked out"); } } if (!is_null_sha1(new_sha1) && !has_sha1_file(new_sha1)) { error("unpack should have generated %s, " "but I can't find it!", sha1_to_hex(new_sha1)); - return "bad pack"; + return xstrdup("bad pack"); } if (!is_null_sha1(old_sha1) && is_null_sha1(new_sha1)) { if (deny_deletes && starts_with(name, "refs/heads/")) { rp_error("denying ref deletion for %s", name); - return "deletion prohibited"; + return xstrdup("deletion prohibited"); } if (!strcmp(namespaced_name, head_name)) { @@ -525,7 +525,8 @@ static char *update(struct command *cmd, struct shallow_info *si) if (deny_delete_current == DENY_UNCONFIGURED) refuse_unconfigured_deny_delete_current(); rp_error("refusing to delete the current branch: %s", name); - return "deletion of the current branch prohibited"; + return xstrdup("deletion of the current branch " + "prohibited"); } } } @@ -543,19 +544,19 @@ static char *update(struct command *cmd, struct shallow_info *si) old_object->type != OBJ_COMMIT || new_object->type != OBJ_COMMIT) { error("bad sha1 objects for %s", name); - return "bad ref"; + return xstrdup("bad ref"); } old_commit = (struct commit *)old_object; new_commit = (struct commit *)new_object; if (!in_merge_bases(old_commit, new_commit)) { rp_error("denying non-fast-forward %s" " (you should pull first)", name); - return "non-fast-forward"; + return xstrdup("non-fast-forward"); } } if (run_update_hook(cmd)) { rp_error("hook declined to update %s", name); - return "hook declined"; + return xstrdup("hook declined"); } if (is_null_sha1(new_sha1)) { @@ -570,7 +571,7 @@ static char *update(struct command *cmd, struct shallow_info *si) } if (delete_ref(namespaced_name, old_sha1, 0)) { rp_error("failed to delete %s", name); - return "failed to delete"; + return xstrdup("failed to delete"); } return NULL; /* good */ } @@ -580,7 +581,7 @@ static char *update(struct command *cmd, struct shallow_info *si) if (shallow_update && si->shallow_ref[cmd->index] && update_shallow_ref(cmd, si)) - return "shallow error"; + return xstrdup("shallow error"); transaction = ref_transaction_begin(&err); if (!transaction || -- 2.0.0.415.g8cd8cf8 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html