diff options
| author | Junio C Hamano <gitster@pobox.com> | 2021-11-29 15:41:45 -0800 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2021-11-29 15:41:45 -0800 | 
| commit | 96f6623ada056c24a60e10ad58acc42871dd9f41 (patch) | |
| tree | 3c7ae409f410de95846c0fb8a6ee40099ff812cc /worktree.c | |
| parent | dea96aae4d4821a7d516257daa6be4be893887cd (diff) | |
| parent | f1da24ca5eeecf8931ffc08b4c8251c689c94a47 (diff) | |
Merge branch 'ab/refs-errno-cleanup'
The "remainder" of hn/refs-errno-cleanup topic.
* ab/refs-errno-cleanup: (21 commits)
  refs API: post-migration API renaming [2/2]
  refs API: post-migration API renaming [1/2]
  refs API: don't expose "errno" in run_transaction_hook()
  refs API: make expand_ref() & repo_dwim_log() not set errno
  refs API: make resolve_ref_unsafe() not set errno
  refs API: make refs_ref_exists() not set errno
  refs API: make refs_resolve_refdup() not set errno
  refs tests: ignore ignore errno in test-ref-store helper
  refs API: ignore errno in worktree.c's find_shared_symref()
  refs API: ignore errno in worktree.c's add_head_info()
  refs API: make files_copy_or_rename_ref() et al not set errno
  refs API: make loose_fill_ref_dir() not set errno
  refs API: make resolve_gitlink_ref() not set errno
  refs API: remove refs_read_ref_full() wrapper
  refs/files: remove "name exist?" check in lock_ref_oid_basic()
  reflog tests: add --updateref tests
  refs API: make refs_rename_ref_available() static
  refs API: make parse_loose_ref_contents() not set errno
  refs API: make refs_read_raw_ref() not set errno
  refs API: add a version of refs_resolve_ref_unsafe() with "errno"
  ...
Diffstat (limited to 'worktree.c')
| -rw-r--r-- | worktree.c | 17 | 
1 files changed, 11 insertions, 6 deletions
diff --git a/worktree.c b/worktree.c index 092a4f92ad..2c155b1015 100644 --- a/worktree.c +++ b/worktree.c @@ -28,11 +28,13 @@ static void add_head_info(struct worktree *wt)  {  	int flags;  	const char *target; +	int ignore_errno;  	target = refs_resolve_ref_unsafe(get_worktree_ref_store(wt),  					 "HEAD",  					 0, -					 &wt->head_oid, &flags); +					 &wt->head_oid, &flags, +					 &ignore_errno);  	if (!target)  		return; @@ -418,6 +420,7 @@ const struct worktree *find_shared_symref(const char *symref,  		const char *symref_target;  		struct ref_store *refs;  		int flags; +		int ignore_errno;  		if (wt->is_bare)  			continue; @@ -435,7 +438,8 @@ const struct worktree *find_shared_symref(const char *symref,  		refs = get_worktree_ref_store(wt);  		symref_target = refs_resolve_ref_unsafe(refs, symref, 0, -							NULL, &flags); +							NULL, &flags, +							&ignore_errno);  		if ((flags & REF_ISSYMREF) &&  		    symref_target && !strcmp(symref_target, target)) {  			existing = wt; @@ -563,16 +567,17 @@ int other_head_refs(each_ref_fn fn, void *cb_data)  		struct worktree *wt = *p;  		struct object_id oid;  		int flag; +		int ignore_errno;  		if (wt->is_current)  			continue;  		strbuf_reset(&refname);  		strbuf_worktree_ref(wt, &refname, "HEAD"); -		if (!refs_read_ref_full(get_main_ref_store(the_repository), -					refname.buf, -					RESOLVE_REF_READING, -					&oid, &flag)) +		if (refs_resolve_ref_unsafe(get_main_ref_store(the_repository), +					    refname.buf, +					    RESOLVE_REF_READING, +					    &oid, &flag, &ignore_errno))  			ret = fn(refname.buf, &oid, flag, cb_data);  		if (ret)  			break;  | 
