MCPcopy Create free account
hub / github.com/git/git / other_head_refs

Function other_head_refs

worktree.c:598–633  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

596}
597
598int other_head_refs(refs_for_each_cb fn, void *cb_data)
599{
600 struct worktree **worktrees, **p;
601 struct strbuf refname = STRBUF_INIT;
602 int ret = 0;
603
604 worktrees = get_worktrees();
605 for (p = worktrees; *p; p++) {
606 struct worktree *wt = *p;
607 struct object_id oid;
608 int flag;
609
610 if (wt->is_current)
611 continue;
612
613 strbuf_reset(&refname);
614 strbuf_worktree_ref(wt, &refname, "HEAD");
615 if (refs_resolve_ref_unsafe(get_main_ref_store(the_repository),
616 refname.buf,
617 RESOLVE_REF_READING,
618 &oid, &flag)) {
619 struct reference ref = {
620 .name = refname.buf,
621 .oid = &oid,
622 .flags = flag,
623 };
624
625 ret = fn(&ref, cb_data);
626 }
627 if (ret)
628 break;
629 }
630 free_worktrees(worktrees);
631 strbuf_release(&refname);
632 return ret;
633}
634
635/*
636 * Repair worktree's /path/to/worktree/.git file if missing, corrupt, or not

Callers 2

mark_reachable_objectsFunction · 0.85

Calls 6

get_worktreesFunction · 0.85
strbuf_worktree_refFunction · 0.85
refs_resolve_ref_unsafeFunction · 0.85
get_main_ref_storeFunction · 0.85
free_worktreesFunction · 0.85
strbuf_releaseFunction · 0.85

Tested by

no test coverage detected