git » git-arr » commit 5568fd5

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

author Eric Sunshine
2015-01-14 07:46:35 UTC
committer Alberto Bertogli
2015-01-17 13:11:46 UTC
parent 89a637660fed90af8991d734ea758a07780e9ac1

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>

git.py +3 -13

diff --git a/git.py b/git.py
index ad3952d..636f3a2 100644
--- a/git.py
+++ b/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)'