Mercurial > hg-git
changeset 418:10027b50202b
In some situations where a reference is being used but does not exist in _map_git or _map_hg, silently skip the reference rather than throwing an error. This allows hg outgoing to work on repositories which do not contain any revisions at all.
author | mcc <andrew.mcclure@gmail.com> |
---|---|
date | Wed, 13 Jul 2011 22:15:04 -0700 |
parents | 6a23158a4da4 |
children | 31c6154bd88d |
files | hggit/git_handler.py |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/hggit/git_handler.py Wed Jul 13 08:06:52 2011 -0500 +++ b/hggit/git_handler.py Wed Jul 13 22:15:04 2011 -0700 @@ -200,8 +200,11 @@ changed_refs = [ref for ref, sha in new_refs.iteritems() if sha != old_refs.get(ref)] new = [bin(self.map_hg_get(new_refs[ref])) for ref in changed_refs] - old = dict( (bin(self.map_hg_get(old_refs[r])), 1) - for r in old_refs) + old = {} + for r in old_refs: + old_ref = self.map_hg_get(old_refs[r]) + if old_ref: + old[bin(old_ref)] = 1 return old, new except (HangupException, GitProtocolError), e: @@ -809,7 +812,9 @@ # Create a local Git branch name for each # Mercurial bookmark. for key in heads: - self.git.refs['refs/heads/' + key] = self.map_git_get(heads[key]) + git_ref = self.map_git_get(heads[key]) + if git_ref: + self.git.refs['refs/heads/' + key] = self.map_git_get(heads[key]) def export_hg_tags(self): for tag, sha in self.repo.tags().iteritems():