Merge branch 'nd/resolve-ref'
* nd/resolve-ref: Rename resolve_ref() to resolve_ref_unsafe() Convert resolve_ref+xstrdup to new resolve_refdup function revert: convert resolve_ref() to read_ref_full()
This commit is contained in:
commit
2e05710a16
2
branch.c
2
branch.c
@ -181,7 +181,7 @@ int validate_new_branchname(const char *name, struct strbuf *ref,
|
||||
const char *head;
|
||||
unsigned char sha1[20];
|
||||
|
||||
head = resolve_ref("HEAD", sha1, 0, NULL);
|
||||
head = resolve_ref_unsafe("HEAD", sha1, 0, NULL);
|
||||
if (!is_bare_repository() && head && !strcmp(head, ref->buf))
|
||||
die("Cannot force update the current branch.");
|
||||
}
|
||||
|
@ -104,6 +104,7 @@ static int branch_merged(int kind, const char *name,
|
||||
*/
|
||||
struct commit *reference_rev = NULL;
|
||||
const char *reference_name = NULL;
|
||||
void *reference_name_to_free = NULL;
|
||||
int merged;
|
||||
|
||||
if (kind == REF_LOCAL_BRANCH) {
|
||||
@ -114,11 +115,9 @@ static int branch_merged(int kind, const char *name,
|
||||
branch->merge &&
|
||||
branch->merge[0] &&
|
||||
branch->merge[0]->dst &&
|
||||
(reference_name =
|
||||
resolve_ref(branch->merge[0]->dst, sha1, 1, NULL)) != NULL) {
|
||||
reference_name = xstrdup(reference_name);
|
||||
(reference_name = reference_name_to_free =
|
||||
resolve_refdup(branch->merge[0]->dst, sha1, 1, NULL)) != NULL)
|
||||
reference_rev = lookup_commit_reference(sha1);
|
||||
}
|
||||
}
|
||||
if (!reference_rev)
|
||||
reference_rev = head_rev;
|
||||
@ -143,7 +142,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);
|
||||
free(reference_name_to_free);
|
||||
return merged;
|
||||
}
|
||||
|
||||
@ -253,7 +252,7 @@ static char *resolve_symref(const char *src, const char *prefix)
|
||||
int flag;
|
||||
const char *dst, *cp;
|
||||
|
||||
dst = resolve_ref(src, sha1, 0, &flag);
|
||||
dst = resolve_ref_unsafe(src, sha1, 0, &flag);
|
||||
if (!(dst && (flag & REF_ISSYMREF)))
|
||||
return NULL;
|
||||
if (prefix && (cp = skip_prefix(dst, prefix)))
|
||||
@ -738,10 +737,9 @@ int cmd_branch(int argc, const char **argv, const char *prefix)
|
||||
|
||||
track = git_branch_track;
|
||||
|
||||
head = resolve_ref("HEAD", head_sha1, 0, NULL);
|
||||
head = resolve_refdup("HEAD", head_sha1, 0, NULL);
|
||||
if (!head)
|
||||
die(_("Failed to resolve HEAD as a valid ref."));
|
||||
head = xstrdup(head);
|
||||
if (!strcmp(head, "HEAD")) {
|
||||
detached = 1;
|
||||
} else {
|
||||
|
@ -705,17 +705,14 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
|
||||
{
|
||||
int ret = 0;
|
||||
struct branch_info old;
|
||||
void *path_to_free;
|
||||
unsigned char rev[20];
|
||||
int flag;
|
||||
memset(&old, 0, sizeof(old));
|
||||
old.path = resolve_ref("HEAD", rev, 0, &flag);
|
||||
if (old.path)
|
||||
old.path = xstrdup(old.path);
|
||||
old.path = path_to_free = resolve_refdup("HEAD", rev, 0, &flag);
|
||||
old.commit = lookup_commit_reference_gently(rev, 1);
|
||||
if (!(flag & REF_ISSYMREF)) {
|
||||
free((char *)old.path);
|
||||
if (!(flag & REF_ISSYMREF))
|
||||
old.path = NULL;
|
||||
}
|
||||
|
||||
if (old.path && !prefixcmp(old.path, "refs/heads/"))
|
||||
old.name = old.path + strlen("refs/heads/");
|
||||
@ -729,8 +726,10 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
|
||||
}
|
||||
|
||||
ret = merge_working_tree(opts, &old, new);
|
||||
if (ret)
|
||||
if (ret) {
|
||||
free(path_to_free);
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!opts->quiet && !old.path && old.commit && new->commit != old.commit)
|
||||
orphaned_commit_warning(old.commit);
|
||||
@ -738,7 +737,7 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new)
|
||||
update_refs_for_switch(opts, &old, new);
|
||||
|
||||
ret = post_checkout_hook(old.commit, new->commit, 1);
|
||||
free((char *)old.path);
|
||||
free(path_to_free);
|
||||
return ret || opts->writeout_error;
|
||||
}
|
||||
|
||||
|
@ -1304,7 +1304,7 @@ static void print_summary(const char *prefix, const unsigned char *sha1,
|
||||
rev.diffopt.break_opt = 0;
|
||||
diff_setup_done(&rev.diffopt);
|
||||
|
||||
head = resolve_ref("HEAD", junk_sha1, 0, NULL);
|
||||
head = resolve_ref_unsafe("HEAD", junk_sha1, 0, NULL);
|
||||
printf("[%s%s ",
|
||||
!prefixcmp(head, "refs/heads/") ?
|
||||
head + 11 :
|
||||
|
@ -372,14 +372,15 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
||||
int i = 0, pos = 0;
|
||||
unsigned char head_sha1[20];
|
||||
const char *current_branch;
|
||||
void *current_branch_to_free;
|
||||
|
||||
/* get current branch */
|
||||
current_branch = resolve_ref("HEAD", head_sha1, 1, NULL);
|
||||
current_branch = current_branch_to_free =
|
||||
resolve_refdup("HEAD", head_sha1, 1, NULL);
|
||||
if (!current_branch)
|
||||
die("No current branch");
|
||||
if (!prefixcmp(current_branch, "refs/heads/"))
|
||||
current_branch += 11;
|
||||
current_branch = xstrdup(current_branch);
|
||||
|
||||
/* get a line */
|
||||
while (pos < in->len) {
|
||||
@ -421,7 +422,7 @@ int fmt_merge_msg(struct strbuf *in, struct strbuf *out,
|
||||
}
|
||||
|
||||
strbuf_complete_line(out);
|
||||
free((char *)current_branch);
|
||||
free(current_branch_to_free);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -628,11 +628,8 @@ static void populate_value(struct refinfo *ref)
|
||||
|
||||
if (need_symref && (ref->flag & REF_ISSYMREF) && !ref->symref) {
|
||||
unsigned char unused1[20];
|
||||
const char *symref;
|
||||
symref = resolve_ref(ref->refname, unused1, 1, NULL);
|
||||
if (symref)
|
||||
ref->symref = xstrdup(symref);
|
||||
else
|
||||
ref->symref = resolve_refdup(ref->refname, unused1, 1, NULL);
|
||||
if (!ref->symref)
|
||||
ref->symref = "";
|
||||
}
|
||||
|
||||
|
@ -563,7 +563,7 @@ static int fsck_head_link(void)
|
||||
if (verbose)
|
||||
fprintf(stderr, "Checking HEAD link\n");
|
||||
|
||||
head_points_at = resolve_ref("HEAD", head_sha1, 0, &flag);
|
||||
head_points_at = resolve_ref_unsafe("HEAD", head_sha1, 0, &flag);
|
||||
if (!head_points_at)
|
||||
return error("Invalid HEAD");
|
||||
if (!strcmp(head_points_at, "HEAD"))
|
||||
|
@ -1040,7 +1040,7 @@ static char *find_branch_name(struct rev_info *rev)
|
||||
if (positive < 0)
|
||||
return NULL;
|
||||
strbuf_addf(&buf, "refs/heads/%s", rev->cmdline.rev[positive].name);
|
||||
branch = resolve_ref(buf.buf, branch_sha1, 1, NULL);
|
||||
branch = resolve_ref_unsafe(buf.buf, branch_sha1, 1, NULL);
|
||||
if (!branch ||
|
||||
prefixcmp(branch, "refs/heads/") ||
|
||||
hashcmp(rev->cmdline.rev[positive].item->sha1, branch_sha1))
|
||||
@ -1268,7 +1268,7 @@ int cmd_format_patch(int argc, const char **argv, const char *prefix)
|
||||
|
||||
rev.pending.objects[0].item->flags |= UNINTERESTING;
|
||||
add_head_to_pending(&rev);
|
||||
ref = resolve_ref("HEAD", sha1, 1, NULL);
|
||||
ref = resolve_ref_unsafe("HEAD", sha1, 1, NULL);
|
||||
if (ref && !prefixcmp(ref, "refs/heads/"))
|
||||
branch_name = xstrdup(ref + strlen("refs/heads/"));
|
||||
else
|
||||
|
@ -1100,6 +1100,7 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
||||
struct commit_list *common = NULL;
|
||||
const char *best_strategy = NULL, *wt_strategy = NULL;
|
||||
struct commit_list **remotes = &remoteheads;
|
||||
void *branch_to_free;
|
||||
|
||||
if (argc == 2 && !strcmp(argv[1], "-h"))
|
||||
usage_with_options(builtin_merge_usage, builtin_merge_options);
|
||||
@ -1108,12 +1109,9 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
||||
* Check if we are _not_ on a detached HEAD, i.e. if there is a
|
||||
* current branch.
|
||||
*/
|
||||
branch = resolve_ref("HEAD", head_sha1, 0, &flag);
|
||||
if (branch) {
|
||||
if (!prefixcmp(branch, "refs/heads/"))
|
||||
branch += 11;
|
||||
branch = xstrdup(branch);
|
||||
}
|
||||
branch = branch_to_free = resolve_refdup("HEAD", head_sha1, 0, &flag);
|
||||
if (branch && !prefixcmp(branch, "refs/heads/"))
|
||||
branch += 11;
|
||||
if (!branch || is_null_sha1(head_sha1))
|
||||
head_commit = NULL;
|
||||
else
|
||||
@ -1524,6 +1522,6 @@ int cmd_merge(int argc, const char **argv, const char *prefix)
|
||||
ret = suggest_conflicts(option_renormalize);
|
||||
|
||||
done:
|
||||
free((char *)branch);
|
||||
free(branch_to_free);
|
||||
return ret;
|
||||
}
|
||||
|
@ -804,6 +804,7 @@ static int merge_commit(struct notes_merge_options *o)
|
||||
struct notes_tree *t;
|
||||
struct commit *partial;
|
||||
struct pretty_print_context pretty_ctx;
|
||||
void *local_ref_to_free;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
@ -826,10 +827,10 @@ static int merge_commit(struct notes_merge_options *o)
|
||||
t = xcalloc(1, sizeof(struct notes_tree));
|
||||
init_notes(t, "NOTES_MERGE_PARTIAL", combine_notes_overwrite, 0);
|
||||
|
||||
o->local_ref = resolve_ref("NOTES_MERGE_REF", sha1, 0, NULL);
|
||||
o->local_ref = local_ref_to_free =
|
||||
resolve_refdup("NOTES_MERGE_REF", sha1, 0, NULL);
|
||||
if (!o->local_ref)
|
||||
die("Failed to resolve NOTES_MERGE_REF");
|
||||
o->local_ref = xstrdup(o->local_ref);
|
||||
|
||||
if (notes_merge_commit(o, t, partial, sha1))
|
||||
die("Failed to finalize notes merge");
|
||||
@ -846,7 +847,7 @@ static int merge_commit(struct notes_merge_options *o)
|
||||
free_notes(t);
|
||||
strbuf_release(&msg);
|
||||
ret = merge_abort(o);
|
||||
free((char *)o->local_ref);
|
||||
free(local_ref_to_free);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@ -37,6 +37,7 @@ static int prefer_ofs_delta = 1;
|
||||
static int auto_update_server_info;
|
||||
static int auto_gc = 1;
|
||||
static const char *head_name;
|
||||
static void *head_name_to_free;
|
||||
static int sent_capabilities;
|
||||
|
||||
static enum deny_action parse_deny_action(const char *var, const char *value)
|
||||
@ -571,7 +572,7 @@ static void check_aliased_update(struct command *cmd, struct string_list *list)
|
||||
int flag;
|
||||
|
||||
strbuf_addf(&buf, "%s%s", get_git_namespace(), cmd->ref_name);
|
||||
dst_name = resolve_ref(buf.buf, sha1, 0, &flag);
|
||||
dst_name = resolve_ref_unsafe(buf.buf, sha1, 0, &flag);
|
||||
strbuf_release(&buf);
|
||||
|
||||
if (!(flag & REF_ISSYMREF))
|
||||
@ -695,10 +696,8 @@ static void execute_commands(struct command *commands, const char *unpacker_erro
|
||||
|
||||
check_aliased_updates(commands);
|
||||
|
||||
free((char *)head_name);
|
||||
head_name = resolve_ref("HEAD", sha1, 0, NULL);
|
||||
if (head_name)
|
||||
head_name = xstrdup(head_name);
|
||||
free(head_name_to_free);
|
||||
head_name = head_name_to_free = resolve_refdup("HEAD", sha1, 0, NULL);
|
||||
|
||||
for (cmd = commands; cmd; cmd = cmd->next)
|
||||
if (!cmd->skip_update)
|
||||
|
@ -573,7 +573,7 @@ static int read_remote_branches(const char *refname,
|
||||
strbuf_addf(&buf, "refs/remotes/%s/", rename->old);
|
||||
if (!prefixcmp(refname, buf.buf)) {
|
||||
item = string_list_append(rename->remote_branches, xstrdup(refname));
|
||||
symref = resolve_ref(refname, orig_sha1, 1, &flag);
|
||||
symref = resolve_ref_unsafe(refname, orig_sha1, 1, &flag);
|
||||
if (flag & REF_ISSYMREF)
|
||||
item->util = xstrdup(symref);
|
||||
else
|
||||
|
@ -903,7 +903,7 @@ static int rollback_single_pick(void)
|
||||
if (!file_exists(git_path("CHERRY_PICK_HEAD")) &&
|
||||
!file_exists(git_path("REVERT_HEAD")))
|
||||
return error(_("no cherry-pick or revert in progress"));
|
||||
if (!resolve_ref("HEAD", head_sha1, 0, NULL))
|
||||
if (read_ref_full("HEAD", head_sha1, 0, NULL))
|
||||
return error(_("cannot resolve HEAD"));
|
||||
if (is_null_sha1(head_sha1))
|
||||
return error(_("cannot abort from a branch yet to be born"));
|
||||
|
@ -726,10 +726,8 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
||||
|
||||
if (ac == 0) {
|
||||
static const char *fake_av[2];
|
||||
const char *refname;
|
||||
|
||||
refname = resolve_ref("HEAD", sha1, 1, NULL);
|
||||
fake_av[0] = xstrdup(refname);
|
||||
fake_av[0] = resolve_refdup("HEAD", sha1, 1, NULL);
|
||||
fake_av[1] = NULL;
|
||||
av = fake_av;
|
||||
ac = 1;
|
||||
@ -791,7 +789,7 @@ int cmd_show_branch(int ac, const char **av, const char *prefix)
|
||||
}
|
||||
}
|
||||
|
||||
head_p = resolve_ref("HEAD", head_sha1, 1, NULL);
|
||||
head_p = resolve_ref_unsafe("HEAD", head_sha1, 1, NULL);
|
||||
if (head_p) {
|
||||
head_len = strlen(head_p);
|
||||
memcpy(head, head_p, head_len + 1);
|
||||
|
@ -12,7 +12,7 @@ static void check_symref(const char *HEAD, int quiet)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
int flag;
|
||||
const char *refs_heads_master = resolve_ref(HEAD, sha1, 0, &flag);
|
||||
const char *refs_heads_master = resolve_ref_unsafe(HEAD, sha1, 0, &flag);
|
||||
|
||||
if (!refs_heads_master)
|
||||
die("No such ref: %s", HEAD);
|
||||
|
3
cache.h
3
cache.h
@ -867,7 +867,8 @@ extern int read_ref(const char *filename, unsigned char *sha1);
|
||||
*
|
||||
* errno is sometimes set on errors, but not always.
|
||||
*/
|
||||
extern const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *flag);
|
||||
extern const char *resolve_ref_unsafe(const char *ref, unsigned char *sha1, int reading, int *flag);
|
||||
extern char *resolve_refdup(const char *ref, unsigned char *sha1, int reading, int *flag);
|
||||
|
||||
extern int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref);
|
||||
extern int dwim_log(const char *str, int len, unsigned char *sha1, char **ref);
|
||||
|
@ -50,11 +50,12 @@ static struct complete_reflogs *read_complete_reflog(const char *ref)
|
||||
for_each_reflog_ent(ref, read_one_reflog, reflogs);
|
||||
if (reflogs->nr == 0) {
|
||||
unsigned char sha1[20];
|
||||
const char *name = resolve_ref(ref, sha1, 1, NULL);
|
||||
const char *name;
|
||||
void *name_to_free;
|
||||
name = name_to_free = resolve_refdup(ref, sha1, 1, NULL);
|
||||
if (name) {
|
||||
name = xstrdup(name);
|
||||
for_each_reflog_ent(name, read_one_reflog, reflogs);
|
||||
free((char *)name);
|
||||
free(name_to_free);
|
||||
}
|
||||
}
|
||||
if (reflogs->nr == 0) {
|
||||
@ -171,11 +172,11 @@ int add_reflog_for_walk(struct reflog_walk_info *info,
|
||||
else {
|
||||
if (*branch == '\0') {
|
||||
unsigned char sha1[20];
|
||||
const char *head = resolve_ref("HEAD", sha1, 0, NULL);
|
||||
if (!head)
|
||||
die ("No current branch");
|
||||
free(branch);
|
||||
branch = xstrdup(head);
|
||||
branch = resolve_refdup("HEAD", sha1, 0, NULL);
|
||||
if (!branch)
|
||||
die ("No current branch");
|
||||
|
||||
}
|
||||
reflogs = read_complete_reflog(branch);
|
||||
if (!reflogs || reflogs->nr == 0) {
|
||||
|
26
refs.c
26
refs.c
@ -361,7 +361,7 @@ static int warn_if_dangling_symref(const char *refname, const unsigned char *sha
|
||||
if (!(flags & REF_ISSYMREF))
|
||||
return 0;
|
||||
|
||||
resolves_to = resolve_ref(refname, junk, 0, NULL);
|
||||
resolves_to = resolve_ref_unsafe(refname, junk, 0, NULL);
|
||||
if (!resolves_to || strcmp(resolves_to, d->refname))
|
||||
return 0;
|
||||
|
||||
@ -497,7 +497,7 @@ static int get_packed_ref(const char *ref, unsigned char *sha1)
|
||||
return -1;
|
||||
}
|
||||
|
||||
const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *flag)
|
||||
const char *resolve_ref_unsafe(const char *ref, unsigned char *sha1, int reading, int *flag)
|
||||
{
|
||||
int depth = MAXDEPTH;
|
||||
ssize_t len;
|
||||
@ -605,6 +605,12 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
|
||||
return ref;
|
||||
}
|
||||
|
||||
char *resolve_refdup(const char *ref, unsigned char *sha1, int reading, int *flag)
|
||||
{
|
||||
const char *ret = resolve_ref_unsafe(ref, sha1, reading, flag);
|
||||
return ret ? xstrdup(ret) : NULL;
|
||||
}
|
||||
|
||||
/* The argument to filter_refs */
|
||||
struct ref_filter {
|
||||
const char *pattern;
|
||||
@ -614,7 +620,7 @@ struct ref_filter {
|
||||
|
||||
int read_ref_full(const char *ref, unsigned char *sha1, int reading, int *flags)
|
||||
{
|
||||
if (resolve_ref(ref, sha1, reading, flags))
|
||||
if (resolve_ref_unsafe(ref, sha1, reading, flags))
|
||||
return 0;
|
||||
return -1;
|
||||
}
|
||||
@ -1111,7 +1117,7 @@ int dwim_ref(const char *str, int len, unsigned char *sha1, char **ref)
|
||||
|
||||
this_result = refs_found ? sha1_from_ref : sha1;
|
||||
mksnpath(fullref, sizeof(fullref), *p, len, str);
|
||||
r = resolve_ref(fullref, this_result, 1, &flag);
|
||||
r = resolve_ref_unsafe(fullref, this_result, 1, &flag);
|
||||
if (r) {
|
||||
if (!refs_found++)
|
||||
*ref = xstrdup(r);
|
||||
@ -1141,7 +1147,7 @@ int dwim_log(const char *str, int len, unsigned char *sha1, char **log)
|
||||
const char *ref, *it;
|
||||
|
||||
mksnpath(path, sizeof(path), *p, len, str);
|
||||
ref = resolve_ref(path, hash, 1, NULL);
|
||||
ref = resolve_ref_unsafe(path, hash, 1, NULL);
|
||||
if (!ref)
|
||||
continue;
|
||||
if (!stat(git_path("logs/%s", path), &st) &&
|
||||
@ -1177,7 +1183,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *ref, const unsigned char
|
||||
lock = xcalloc(1, sizeof(struct ref_lock));
|
||||
lock->lock_fd = -1;
|
||||
|
||||
ref = resolve_ref(ref, lock->old_sha1, mustexist, &type);
|
||||
ref = resolve_ref_unsafe(ref, lock->old_sha1, mustexist, &type);
|
||||
if (!ref && errno == EISDIR) {
|
||||
/* we are trying to lock foo but we used to
|
||||
* have foo/bar which now does not exist;
|
||||
@ -1190,7 +1196,7 @@ static struct ref_lock *lock_ref_sha1_basic(const char *ref, const unsigned char
|
||||
error("there are still refs under '%s'", orig_ref);
|
||||
goto error_return;
|
||||
}
|
||||
ref = resolve_ref(orig_ref, lock->old_sha1, mustexist, &type);
|
||||
ref = resolve_ref_unsafe(orig_ref, lock->old_sha1, mustexist, &type);
|
||||
}
|
||||
if (type_p)
|
||||
*type_p = type;
|
||||
@ -1353,7 +1359,7 @@ int rename_ref(const char *oldref, const char *newref, const char *logmsg)
|
||||
if (log && S_ISLNK(loginfo.st_mode))
|
||||
return error("reflog for %s is a symlink", oldref);
|
||||
|
||||
symref = resolve_ref(oldref, orig_sha1, 1, &flag);
|
||||
symref = resolve_ref_unsafe(oldref, orig_sha1, 1, &flag);
|
||||
if (flag & REF_ISSYMREF)
|
||||
return error("refname %s is a symbolic ref, renaming it is not supported",
|
||||
oldref);
|
||||
@ -1642,7 +1648,7 @@ int write_ref_sha1(struct ref_lock *lock,
|
||||
unsigned char head_sha1[20];
|
||||
int head_flag;
|
||||
const char *head_ref;
|
||||
head_ref = resolve_ref("HEAD", head_sha1, 1, &head_flag);
|
||||
head_ref = resolve_ref_unsafe("HEAD", head_sha1, 1, &head_flag);
|
||||
if (head_ref && (head_flag & REF_ISSYMREF) &&
|
||||
!strcmp(head_ref, lock->ref_name))
|
||||
log_ref_write("HEAD", lock->old_sha1, sha1, logmsg);
|
||||
@ -1979,7 +1985,7 @@ int update_ref(const char *action, const char *refname,
|
||||
int ref_exists(const char *refname)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
return !!resolve_ref(refname, sha1, 1, NULL);
|
||||
return !!resolve_ref_unsafe(refname, sha1, 1, NULL);
|
||||
}
|
||||
|
||||
struct ref *find_ref_by_name(const struct ref *list, const char *name)
|
||||
|
6
remote.c
6
remote.c
@ -482,7 +482,7 @@ static void read_config(void)
|
||||
return;
|
||||
default_remote_name = xstrdup("origin");
|
||||
current_branch = NULL;
|
||||
head_ref = resolve_ref("HEAD", sha1, 0, &flag);
|
||||
head_ref = resolve_ref_unsafe("HEAD", sha1, 0, &flag);
|
||||
if (head_ref && (flag & REF_ISSYMREF) &&
|
||||
!prefixcmp(head_ref, "refs/heads/")) {
|
||||
current_branch =
|
||||
@ -1007,7 +1007,7 @@ static char *guess_ref(const char *name, struct ref *peer)
|
||||
struct strbuf buf = STRBUF_INIT;
|
||||
unsigned char sha1[20];
|
||||
|
||||
const char *r = resolve_ref(peer->name, sha1, 1, NULL);
|
||||
const char *r = resolve_ref_unsafe(peer->name, sha1, 1, NULL);
|
||||
if (!r)
|
||||
return NULL;
|
||||
|
||||
@ -1058,7 +1058,7 @@ static int match_explicit(struct ref *src, struct ref *dst,
|
||||
unsigned char sha1[20];
|
||||
int flag;
|
||||
|
||||
dst_value = resolve_ref(matched_src->name, sha1, 1, &flag);
|
||||
dst_value = resolve_ref_unsafe(matched_src->name, sha1, 1, &flag);
|
||||
if (!dst_value ||
|
||||
((flag & REF_ISSYMREF) &&
|
||||
prefixcmp(dst_value, "refs/heads/")))
|
||||
|
@ -163,7 +163,7 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
|
||||
/* Follow symbolic refs (mainly for HEAD). */
|
||||
localname = ref->peer_ref->name;
|
||||
remotename = ref->name;
|
||||
tmp = resolve_ref(localname, sha, 1, &flag);
|
||||
tmp = resolve_ref_unsafe(localname, sha, 1, &flag);
|
||||
if (tmp && flag & REF_ISSYMREF &&
|
||||
!prefixcmp(tmp, "refs/heads/"))
|
||||
localname = tmp;
|
||||
|
@ -111,7 +111,6 @@ void status_printf_more(struct wt_status *s, const char *color,
|
||||
void wt_status_prepare(struct wt_status *s)
|
||||
{
|
||||
unsigned char sha1[20];
|
||||
const char *head;
|
||||
|
||||
memset(s, 0, sizeof(*s));
|
||||
memcpy(s->color_palette, default_wt_status_colors,
|
||||
@ -119,8 +118,7 @@ void wt_status_prepare(struct wt_status *s)
|
||||
s->show_untracked_files = SHOW_NORMAL_UNTRACKED_FILES;
|
||||
s->use_color = -1;
|
||||
s->relative_paths = 1;
|
||||
head = resolve_ref("HEAD", sha1, 0, NULL);
|
||||
s->branch = head ? xstrdup(head) : NULL;
|
||||
s->branch = resolve_refdup("HEAD", sha1, 0, NULL);
|
||||
s->reference = "HEAD";
|
||||
s->fp = stdout;
|
||||
s->index_file = get_index_file();
|
||||
|
Loading…
Reference in New Issue
Block a user