refs.c: change resolve_ref_unsafe reading argument to be a flags field
resolve_ref_unsafe takes a boolean argument for reading (a nonexistent ref resolves successfully for writing but not for reading). Change this to be a flags field instead, and pass the new constant RESOLVE_REF_READING when we want this behaviour. While at it, swap two of the arguments in the function to put output arguments at the end. As a nice side effect, this ensures that we can catch callers that were unaware of the new API so they can be audited. Give the wrapper functions resolve_refdup and read_ref_full the same treatment for consistency. Signed-off-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
aae383db8c
commit
7695d118e5
@ -355,7 +355,7 @@ static int checkout_paths(const struct checkout_opts *opts,
|
||||
if (write_locked_index(&the_index, lock_file, COMMIT_LOCK))
|
||||
die(_("unable to write new index file"));
|
||||
|
||||
read_ref_full("HEAD", rev, 0, &flag);
|
||||
read_ref_full("HEAD", 0, rev, &flag);
|
||||
head = lookup_commit_reference_gently(rev, 1);
|
||||
|
||||
errs |= post_checkout_hook(head, head, 0);
|
||||
@ -775,7 +775,7 @@ static int switch_branches(const struct checkout_opts *opts,
|
||||
unsigned char rev[20];
|
||||
int flag, writeout_error = 0;
|
||||
memset(&old, 0, sizeof(old));
|
||||
old.path = path_to_free = resolve_refdup("HEAD", rev, 0, &flag);
|
||||
old.path = path_to_free = resolve_refdup("HEAD", 0, rev, &flag);
|
||||
old.commit = lookup_commit_reference_gently(rev, 1);
|
||||
if (!(flag & REF_ISSYMREF))
|
||||
old.path = NULL;
|
||||
@ -1072,7 +1072,7 @@ static int checkout_branch(struct checkout_opts *opts,
|
||||
unsigned char rev[20];
|
||||
int flag;
|
||||
|
||||
if (!read_ref_full("HEAD", rev, 0, &flag) &&
|
||||
if (!read_ref_full("HEAD", 0, rev, &flag) &&
|
||||
(flag & REF_ISSYMREF) && is_null_sha1(rev))
|
||||
return switch_unborn_to_new_branch(opts);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user