def get_skip_ranges(patchset): """Returns all skip range names""" return { ref.split("/")[-2] for ref in git.get_refs_with_prefix( f"refs/bisect/break/{patchset_identifier(patchset)}/markers") }
def get_good_commits(): """Returns all refs that are marked as good.""" good_refs = [] for ref in git.get_refs_with_prefix("refs/bisect"): parts = ref.split("/") if len(parts) == 3 and parts[2].startswith("good-"): good_refs.append(ref) return good_refs
def read_patchset(): """Reats the current (i.e. longest) patchset from the refs""" patchset_refs = git.get_refs_with_prefix("refs/bisect/patchset") if len(patchset_refs) == 0: return [] patchset_identifiers = [ref.split("/")[3:-1] for ref in patchset_refs] longest_idx = np.argmax([len(ps) for ps in patchset_identifiers]) patchset = patchset_identifiers[longest_idx] return patchset
def get_skip_range_commits(patchset): """Returns all refs that are marked with some skip range.""" return git.get_refs_with_prefix( f"refs/bisect/break/{patchset_identifier(patchset)}/markers")
def clear_refs_with_prefix(prefix): """Remove all refs that belong to a skip range""" for ref in git.get_refs_with_prefix(prefix): git.delete_ref(ref)
def get_named_skip_refs(name, patchset): """Returns all commits that are marked with the skip range `name`.""" return git.get_refs_with_prefix( f"refs/bisect/break/{patchset_identifier(patchset)}/markers/{name}")