Mercurial > hg-git
diff git_handler.py @ 14:36e94e805fa7
added basic config file for remembering remote urls
author | Scott Chacon <schacon@gmail.com> |
---|---|
date | Sun, 26 Apr 2009 16:25:04 -0700 |
parents | 01f28d40cb6a |
children | 58cd05129119 |
line wrap: on
line diff
--- a/git_handler.py Sun Apr 26 15:51:05 2009 -0700 +++ b/git_handler.py Sun Apr 26 16:25:04 2009 -0700 @@ -15,23 +15,42 @@ self.ui = ui self.load_git() self.load_map() + self.load_config() def load_git(self): git_dir = os.path.join(self.repo.path, 'git') self.git = Repo(git_dir) + ## FILE LOAD AND SAVE METHODS + def load_map(self): self._map = {} if os.path.exists(self.repo.join('git-mapfile')): for line in self.repo.opener('git-mapfile'): gitsha, hgsha = line.strip().split(' ', 1) self._map[gitsha] = hgsha - + def save_map(self): file = self.repo.opener('git-mapfile', 'w+') for gitsha, hgsha in self._map.iteritems(): file.write("%s %s\n" % (gitsha, hgsha)) file.close() + + def load_config(self): + self._config = {} + if os.path.exists(self.repo.join('git-config')): + for line in self.repo.opener('git-config'): + key, value = line.strip().split(' ', 1) + self._config[key] = value + + def save_config(self): + file = self.repo.opener('git-config', 'w+') + for key, value in self._config.iteritems(): + file.write("%s %s\n" % (key, value)) + file.close() + + + ## END FILE LOAD AND SAVE METHODS def fetch(self, remote_name): self.ui.status(_("fetching from : " + remote_name + "\n")) @@ -42,10 +61,11 @@ # TODO: make these actually save and recall def remote_add(self, remote_name, git_url): - self._git_url = git_url + self._config['remote.' + remote_name + '.url'] = git_url + self.save_config() def remote_name_to_url(self, remote_name): - return self._git_url + return self._config['remote.' + remote_name + '.url'] def remote_head(self, remote_name): for head, sha in self.git.remote_refs(remote_name).iteritems():