int other_head_refs(each_ref_fn fn, void *cb_data) { struct worktree **worktrees, **p; int ret = 0; worktrees = get_worktrees(0); for (p = worktrees; *p; p++) { struct worktree *wt = *p; struct object_id oid; int flag; if (wt->is_current) continue; if (!refs_read_ref_full(get_main_ref_store(the_repository), worktree_ref(wt, "HEAD"), RESOLVE_REF_READING, &oid, &flag)) ret = fn(worktree_ref(wt, "HEAD"), &oid, flag, cb_data); if (ret) break; } free_worktrees(worktrees); return ret; }
int read_ref_full(const char *refname, int resolve_flags, unsigned char *sha1, int *flags) { return refs_read_ref_full(get_main_ref_store(), refname, resolve_flags, sha1, flags); }