Allow callers of GitConfig to specify the pickle file path
This way we can put it in another directory than the config file
itself, e.g. hide it inside ".git" when parsing a ".gitmodules"
file from the working tree.
Signed-off-by: Shawn O. Pearce <sop@google.com>
diff --git a/git_config.py b/git_config.py
index bc7ed45..29d8979 100644
--- a/git_config.py
+++ b/git_config.py
@@ -56,16 +56,20 @@
return cls(file = os.path.join(gitdir, 'config'),
defaults = defaults)
- def __init__(self, file, defaults=None):
+ def __init__(self, file, defaults=None, pickleFile=None):
self.file = file
self.defaults = defaults
self._cache_dict = None
self._section_dict = None
self._remotes = {}
self._branches = {}
- self._pickle = os.path.join(
- os.path.dirname(self.file),
- '.repopickle_' + os.path.basename(self.file))
+
+ if pickleFile is None:
+ self._pickle = os.path.join(
+ os.path.dirname(self.file),
+ '.repopickle_' + os.path.basename(self.file))
+ else:
+ self._pickle = pickleFile
def Has(self, name, include_defaults = True):
"""Return true if this configuration file has the key.