def all_refs(split=False, git=git): """Return a tuple of (local branches, remote branches, tags).""" local_branches = [] remote_branches = [] tags = [] triple = lambda x, y: (x, len(x) + 1, y) query = (triple("refs/tags", tags), triple("refs/heads", local_branches), triple("refs/remotes", remote_branches)) out = git.for_each_ref(format="%(refname)")[STDOUT] for ref in out.splitlines(): for prefix, prefix_len, dst in query: if ref.startswith(prefix) and not ref.endswith("/HEAD"): dst.append(ref[prefix_len:]) continue if split: return local_branches, remote_branches, tags else: return local_branches + remote_branches + tags
def all_refs(split=False, git=git): """Return a tuple of (local branches, remote branches, tags).""" local_branches = [] remote_branches = [] tags = [] triple = lambda x, y: (x, len(x) + 1, y) query = (triple('refs/tags', tags), triple('refs/heads', local_branches), triple('refs/remotes', remote_branches)) out = git.for_each_ref(format='%(refname)')[STDOUT] for ref in out.splitlines(): for prefix, prefix_len, dst in query: if ref.startswith(prefix) and not ref.endswith('/HEAD'): dst.append(ref[prefix_len:]) continue if split: return local_branches, remote_branches, tags else: return local_branches + remote_branches + tags
def all_refs(split=False, git=git): """Return a tuple of (local branches, remote branches, tags).""" local_branches = [] remote_branches = [] tags = [] triple = lambda x, y: (x, len(x) + 1, y) query = (triple('refs/tags', tags), triple('refs/heads', local_branches), triple('refs/remotes', remote_branches)) cmdout = core.decode(git.for_each_ref(format='%(refname)')) for ref in cmdout.splitlines(): for prefix, prefix_len, dst in query: if ref.startswith(prefix) and not ref.endswith('/HEAD'): dst.append(ref[prefix_len:]) continue if split: return local_branches, remote_branches, tags else: return local_branches + remote_branches + tags
def for_each_ref_basename(refs, git=git): """Return refs starting with 'refs'.""" out = git.for_each_ref(refs, format='%(refname)')[STDOUT] output = out.splitlines() non_heads = filter(lambda x: not x.endswith('/HEAD'), output) return list(map(lambda x: x[len(refs) + 1:], non_heads))
def for_each_ref_basename(refs, git=git): """Return refs starting with 'refs'.""" out = git.for_each_ref(refs, format="%(refname)")[STDOUT] output = out.splitlines() non_heads = filter(lambda x: not x.endswith("/HEAD"), output) return map(lambda x: x[len(refs) + 1 :], non_heads)
def for_each_ref_basename(refs, git=git): """Return refs starting with 'refs'.""" git_output = git.for_each_ref(refs, format='%(refname)') output = core.decode(git_output).splitlines() non_heads = filter(lambda x: not x.endswith('/HEAD'), output) return map(lambda x: x[len(refs) + 1:], non_heads)
def for_each_ref_basename(refs, git=git): """Return refs starting with 'refs'.""" out = git.for_each_ref(refs, format='%(refname)')[STDOUT] output = out.splitlines() non_heads = [x for x in output if not x.endswith('/HEAD')] return list(map(lambda x: x[len(refs) + 1:], non_heads))