Before, bup would end up calling repo() for every invocation of cp().
Given that constructions like cp().get(id) are common, this could cause
a lot of unecessary calls, given that we already have git.repodir, which
will have the relevant value once initialized.
Discovered after noticing "bup restore" was hammering
"$BUP_DIR"/.git (which didn't exist).
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
verbose = 0
ignore_midx = 0
-repodir = None
+repodir = None # The default repository, once initialized
_typemap = { 'blob':3, 'tree':2, 'commit':1, 'tag':4 }
_typermap = { 3:'blob', 2:'tree', 1:'commit', 4:'tag' }
def cp(repo_dir=None):
"""Create a CatPipe object or reuse the already existing one."""
- global _cp
+ global _cp, repodir
if not repo_dir:
- repo_dir = repo()
+ repo_dir = repodir or repo()
repo_dir = os.path.abspath(repo_dir)
cp = _cp.get(repo_dir)
if not cp: