summaryrefslogtreecommitdiff
path: root/builtin/branch.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-12-09 21:37:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2011-12-09 21:37:14 (GMT)
commitb7f7c07977ab6e41899b835b873a1ac499eaa2b3 (patch)
tree9b20151eb2b1a325ed2c72c22fad41616d8d98db /builtin/branch.c
parenteb8aa3d2c2849cb3a44396b89054339df38e2bfa (diff)
parentd5a35c114ab6b4337a1c7598bf75c331d94ee092 (diff)
downloadgit-b7f7c07977ab6e41899b835b873a1ac499eaa2b3.zip
git-b7f7c07977ab6e41899b835b873a1ac499eaa2b3.tar.gz
git-b7f7c07977ab6e41899b835b873a1ac499eaa2b3.tar.bz2
Merge branch 'nd/resolve-ref'
* nd/resolve-ref: Copy resolve_ref() return value for longer use Convert many resolve_ref() calls to read_ref*() and ref_exists() Conflicts: builtin/fmt-merge-msg.c builtin/merge.c refs.c
Diffstat (limited to 'builtin/branch.c')
-rw-r--r--builtin/branch.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/builtin/branch.c b/builtin/branch.c
index ad02f0f..e1e486e 100644
--- a/builtin/branch.c
+++ b/builtin/branch.c
@@ -115,8 +115,10 @@ static int branch_merged(int kind, const char *name,
branch->merge[0] &&
branch->merge[0]->dst &&
(reference_name =
- resolve_ref(branch->merge[0]->dst, sha1, 1, NULL)) != NULL)
+ resolve_ref(branch->merge[0]->dst, sha1, 1, NULL)) != NULL) {
+ reference_name = xstrdup(reference_name);
reference_rev = lookup_commit_reference(sha1);
+ }
}
if (!reference_rev)
reference_rev = head_rev;
@@ -141,6 +143,7 @@ static int branch_merged(int kind, const char *name,
" '%s', even though it is merged to HEAD."),
name, reference_name);
}
+ free((char *)reference_name);
return merged;
}
@@ -186,7 +189,7 @@ static int delete_branches(int argc, const char **argv, int force, int kinds)
free(name);
name = xstrdup(mkpath(fmt, bname.buf));
- if (!resolve_ref(name, sha1, 1, NULL)) {
+ if (read_ref(name, sha1)) {
error(_("%sbranch '%s' not found."),
remote, bname.buf);
ret = 1;
@@ -565,7 +568,6 @@ static int print_ref_list(int kinds, int detached, int verbose, int abbrev, stru
static void rename_branch(const char *oldname, const char *newname, int force)
{
struct strbuf oldref = STRBUF_INIT, newref = STRBUF_INIT, logmsg = STRBUF_INIT;
- unsigned char sha1[20];
struct strbuf oldsection = STRBUF_INIT, newsection = STRBUF_INIT;
int recovery = 0;
@@ -577,7 +579,7 @@ static void rename_branch(const char *oldname, const char *newname, int force)
* Bad name --- this could be an attempt to rename a
* ref that we used to allow to be created by accident.
*/
- if (resolve_ref(oldref.buf, sha1, 1, NULL))
+ if (ref_exists(oldref.buf))
recovery = 1;
else
die(_("Invalid branch name: '%s'"), oldname);