Repo: retire new_in_branch() and notion of "bound" branch

Binding (or "pegging") a Repo at a particular branch via new_in_branch()
increases the cognitive burden since the reader must maintain a mental
model of which Repo instances are pegged and which are not. This burden
outweighs whatever minor convenience (if any) is gained by pegging the
Repo at a particular branch. It is easier to reason about the code when
the branch name is passed to clients directly rather than indirectly via
a pegged Repo.

Preceding patches retired all callers of new_in_branch(), therefore
remove it.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
This commit is contained in:
Eric Sunshine 2015-01-14 02:46:35 -05:00 committed by Alberto Bertogli
parent 89a637660f
commit 5568fd50c2

16
git.py

@ -205,9 +205,8 @@ def unquote(s):
class Repo:
"""A git repository."""
def __init__(self, path, branch = None, name = None, info = None):
def __init__(self, path, name = None, info = None):
self.path = path
self.branch = branch
self.name = name
self.info = info or SimpleNamespace()
@ -249,11 +248,6 @@ class Repo:
"""Get the names of the tags."""
return ( name for name, _ in self.tags() )
def new_in_branch(self, branch):
"""Returns a new Repo, but on the specific branch."""
return Repo(self.path, branch = branch, name = self.name,
info = self.info)
def commit_ids(self, ref, limit = None):
"""Generate commit ids."""
cmd = self.cmd('rev-list')
@ -333,16 +327,12 @@ class Repo:
return r
def tree(self, ref = None):
def tree(self, ref):
"""Returns a Tree instance for the given ref."""
if not ref:
ref = self.branch
return Tree(self, ref)
def blob(self, path, ref = None):
def blob(self, path, ref):
"""Returns a Blob instance for the given path."""
if not ref:
ref = self.branch
cmd = self.cmd('cat-file')
cmd.raw(True)
cmd.batch = '%(objectsize)'