# HG changeset patch # User mcc # Date 1310620504 25200 # Node ID 10027b50202bb8b1a1737b5edc620d887c714466 # Parent 6a23158a4da43e2fe810735e4ab40eabe3c7880b 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. diff -r 6a23158a4da4 -r 10027b50202b hggit/git_handler.py --- 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():