This should be merged into patch :
1685d87 receive-pack.c: use a reference transaction for updating the refs

Signed-off-by: Ronnie Sahlberg <sahlb...@google.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to