diff --git a/hggit/compat.py b/hggit/compat.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvY29tcGF0LnB5..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvY29tcGF0LnB5 100644 --- a/hggit/compat.py +++ b/hggit/compat.py @@ -109,8 +109,8 @@ def registerconfigs(configitem): global hasconfigitems hasconfigitems = True - for section, items in CONFIG_DEFAULTS.iteritems(): - for item, default in items.iteritems(): + for section, items in iteritems(CONFIG_DEFAULTS): + for item, default in iteritems(items): configitem(section, item, default=default) diff --git a/hggit/git2hg.py b/hggit/git2hg.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvZ2l0MmhnLnB5..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvZ2l0MmhnLnB5 100644 --- a/hggit/git2hg.py +++ b/hggit/git2hg.py @@ -5,6 +5,7 @@ import urllib from dulwich.objects import Commit, Tag +from . import compat def find_incoming(git_object_store, git_map, refs): '''find what commits need to be imported @@ -28,7 +29,7 @@ def get_heads(refs): todo = [] seenheads = set() - for ref, sha in refs.iteritems(): + for ref, sha in compat.iteritems(refs): # refs could contain refs on the server that we haven't pulled down # the objects for; also make sure it's a sha and not a symref if ref != 'HEAD' and sha in git_object_store: diff --git a/hggit/git_handler.py b/hggit/git_handler.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvZ2l0X2hhbmRsZXIucHk=..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvZ2l0X2hhbmRsZXIucHk= 100644 --- a/hggit/git_handler.py +++ b/hggit/git_handler.py @@ -220,7 +220,7 @@ map_hg = self._map_hg buf = io.BytesIO() bwrite = buf.write - for hgsha, gitsha in map_hg.iteritems(): + for hgsha, gitsha in compat.iteritems(map_hg): bwrite("%s %s\n" % (gitsha, hgsha)) file.write(buf.getvalue()) buf.close() @@ -238,7 +238,7 @@ def save_tags(self): file = self.vfs(self.tags_file, 'w+', atomictemp=True) - for name, sha in sorted(self.tags.iteritems()): + for name, sha in sorted(compat.iteritems(self.tags)): if not self.repo.tagtype(name) == 'global': file.write("%s %s\n" % (sha, name)) # If this complains, atomictempfile no longer has close @@ -388,7 +388,7 @@ try: client.send_pack(path, changed, lambda have, want: []) - changed_refs = [ref for ref, sha in new_refs.iteritems() + changed_refs = [ref for ref, sha in compat.iteritems(new_refs) if sha != old_refs.get(ref)] new = [bin(self.map_hg_get(new_refs[ref])) for ref in changed_refs] old = {} @@ -407,7 +407,7 @@ remote_name = self.remote_name(remote) if remote_name and new_refs: - for ref, new_sha in sorted(new_refs.iteritems()): + for ref, new_sha in sorted(compat.iteritems(new_refs)): old_sha = old_refs.get(ref) if old_sha is None: if self.ui.verbose: @@ -872,5 +872,5 @@ parentsubdata = p1ctx.filectx('.hgsubstate').data() parentsubdata = parentsubdata.splitlines() parentsubstate = util.parse_hgsubstate(parentsubdata) - for path, sha in parentsubstate.iteritems(): + for path, sha in compat.iteritems(parentsubstate): hgsubstate[path] = sha @@ -876,5 +876,5 @@ hgsubstate[path] = sha - for path, sha in gitlinks.iteritems(): + for path, sha in compat.iteritems(gitlinks): if sha is None: hgsubstate.pop(path, None) else: @@ -953,7 +953,7 @@ return [] manifest1 = self.repo[p1].manifest() manifest2 = self.repo[p2].manifest() - return [path for path, node1 in manifest1.iteritems() if path not + return [path for path, node1 in compat.iteritems(manifest1) if path not in files and manifest2.get(path, node1) != node1] def getfilectx(repo, memctx, f): @@ -1148,7 +1148,7 @@ # mapped nodes might be hidden unfiltered = self.repo.unfiltered() - for rev, rev_refs in exportable.iteritems(): + for rev, rev_refs in compat.iteritems(exportable): ctx = self.repo[rev] if not rev_refs: raise error.Abort("revision %s cannot be pushed since" @@ -1213,7 +1213,7 @@ if refs is None: return None filteredrefs = self.filter_refs(refs, heads) - return [x for x in filteredrefs.itervalues() if x not in self.git] + return [x for x in compat.itervalues(filteredrefs) if x not in self.git] try: progress = GitProgress(self.ui) @@ -1267,7 +1267,7 @@ raise error.Abort("ambiguous reference %s: %r" % (h, r)) else: - for ref, sha in refs.iteritems(): + for ref, sha in compat.iteritems(refs): if (not ref.endswith('^{}') and (ref.startswith('refs/heads/') or ref.startswith('refs/tags/'))): @@ -1295,7 +1295,7 @@ return obj.tag_time >= min_timestamp else: return obj.commit_time >= min_timestamp - return util.OrderedDict((ref, sha) for ref, sha in refs.iteritems() + return util.OrderedDict((ref, sha) for ref, sha in compat.iteritems(refs) if check_min_time(self.git[sha])) def update_references(self): @@ -1303,10 +1303,10 @@ # Create a local Git branch name for each # Mercurial bookmark. - for hg_sha, refs in exportable.iteritems(): + for hg_sha, refs in compat.iteritems(exportable): for git_ref in refs.heads: git_sha = self.map_git_get(hg_sha) if git_sha: self.git.refs[git_ref] = git_sha def export_hg_tags(self): @@ -1307,10 +1307,10 @@ for git_ref in refs.heads: git_sha = self.map_git_get(hg_sha) if git_sha: self.git.refs[git_ref] = git_sha def export_hg_tags(self): - for tag, sha in self.repo.tags().iteritems(): + for tag, sha in compat.iteritems(self.repo.tags()): if self.repo.tagtype(tag) in ('global', 'git'): tag = tag.replace(' ', '_') target = self.map_git_get(hex(sha)) @@ -1356,7 +1356,7 @@ bms = self.repo._bookmarks for filtered_bm, bm in self._filter_for_bookmarks(bms): res[hex(bms[bm])].heads.add('refs/heads/' + filtered_bm) - for tag, sha in self.tags.iteritems(): + for tag, sha in compat.iteritems(self.tags): res[sha].tags.add('refs/tags/' + tag) return res @@ -1402,7 +1402,7 @@ suffix = self.branch_bookmark_suffix or '' changes = [] - for head, sha in heads.iteritems(): + for head, sha in compat.iteritems(heads): # refs contains all the refs in the server, not just # the ones we are pulling hgsha = self.map_hg_get(sha) @@ -1433,7 +1433,7 @@ for t in list(remote_refs): if t.startswith(remote_name + '/'): del remote_refs[t] - for ref_name, sha in refs.iteritems(): + for ref_name, sha in compat.iteritems(refs): if ref_name.startswith('refs/heads'): hgsha = self.map_hg_get(sha) if hgsha is None or hgsha not in self.repo: diff --git a/hggit/gitdirstate.py b/hggit/gitdirstate.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvZ2l0ZGlyc3RhdGUucHk=..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvZ2l0ZGlyc3RhdGUucHk= 100644 --- a/hggit/gitdirstate.py +++ b/hggit/gitdirstate.py @@ -51,7 +51,7 @@ rootsuffixes = ['', '**/'] for rootsuffix in rootsuffixes: pat = syntax + rootprefix + rootsuffix + line - for s, rels in syntaxes.iteritems(): + for s, rels in compat.iteritems(syntaxes): if line.startswith(rels): pat = line break diff --git a/hggit/gitrepo.py b/hggit/gitrepo.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvZ2l0cmVwby5weQ==..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvZ2l0cmVwby5weQ== 100644 --- a/hggit/gitrepo.py +++ b/hggit/gitrepo.py @@ -6,6 +6,8 @@ util ) +from . import compat + peerapi = False try: from mercurial.interfaces.repository import peer as peerrepository @@ -62,7 +64,7 @@ # map any git shas that exist in hg to hg shas stripped_refs = { ref[11:]: handler.map_hg_get(val) or val - for ref, val in result.refs.iteritems() + for ref, val in compat.iteritems(result.refs) if ref.startswith('refs/heads/') } return stripped_refs diff --git a/hggit/hg2git.py b/hggit/hg2git.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvaGcyZ2l0LnB5..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvaGcyZ2l0LnB5 100644 --- a/hggit/hg2git.py +++ b/hggit/hg2git.py @@ -144,7 +144,7 @@ while todo: path, tree = todo.pop() self._dirs[path] = tree - for entry in tree.iteritems(): + for entry in compat.iteritems(tree): if entry.mode == dirkind: if path == '': newpath = entry.path @@ -396,7 +396,7 @@ def isgit(sub, path): return path not in sub or sub[path].startswith('[git]') - for path, sha in substate.iteritems(): + for path, sha in compat.iteritems(substate): if not isgit(sub, path): # old = hg -- will be handled in next loop continue @@ -405,7 +405,7 @@ # new = hg or no, case (2) or (3) removed.append(path) - for path, sha in newsubstate.iteritems(): + for path, sha in compat.iteritems(newsubstate): if not isgit(newsub, path): # new = hg or no; the only cases we care about are handled # above diff --git a/hggit/hgrepo.py b/hggit/hgrepo.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvaGdyZXBvLnB5..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvaGdyZXBvLnB5 100644 --- a/hggit/hgrepo.py +++ b/hggit/hgrepo.py @@ -8,6 +8,7 @@ from .git_handler import GitHandler from .gitrepo import gitrepo +from . import compat from . import util @@ -47,8 +48,8 @@ def _findtags(self): (tags, tagtypes) = super(hgrepo, self)._findtags() - for tag, rev in self.githandler.tags.iteritems(): + for tag, rev in compat.iteritems(self.githandler.tags): if isinstance(tag, unicode): tag = tag.encode('utf-8') tags[tag] = bin(rev) tagtypes[tag] = 'git' @@ -51,8 +52,8 @@ if isinstance(tag, unicode): tag = tag.encode('utf-8') tags[tag] = bin(rev) tagtypes[tag] = 'git' - for tag, rev in self.githandler.remote_refs.iteritems(): + for tag, rev in compat.iteritems(self.githandler.remote_refs): if isinstance(tag, unicode): tag = tag.encode('utf-8') tags[tag] = rev @@ -72,7 +73,7 @@ # TODO consider using self._tagscache tagscache = super(hgrepo, self).tags() tagscache.update(self.githandler.remote_refs) - for tag, rev in self.githandler.tags.iteritems(): + for tag, rev in compat.iteritems(self.githandler.tags): if tag in tagscache: continue diff --git a/hggit/overlay.py b/hggit/overlay.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvb3ZlcmxheS5weQ==..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvb3ZlcmxheS5weQ== 100644 --- a/hggit/overlay.py +++ b/hggit/overlay.py @@ -33,7 +33,7 @@ def withflags(self): self.load() - return set([path for path, flag in self._flags.iteritems() + return set([path for path, flag in compat.iteritems(self._flags) if flag != '']) def copy(self): @@ -62,7 +62,7 @@ return '' def addtree(tree, dirname): - for entry in tree.iteritems(): + for entry in compat.iteritems(tree): if entry.mode & 0o40000: # expand directory subtree = self.repo.handler.git.get_object(entry.sha) @@ -87,7 +87,7 @@ def iteritems(self): self.load() - return self._map.iteritems() + return compat.iteritems(self._map) def __iter__(self): self.load() @@ -128,7 +128,7 @@ if match is None: match = matchmod.always('', '') - for fn, n1 in self.iteritems(): + for fn, n1 in compat.iteritems(self): if not match(fn): continue fl1 = self._flags.get(fn) @@ -141,7 +141,7 @@ elif clean: diff[fn] = None - for fn, n2 in m2.iteritems(): + for fn, n2 in compat.iteritems(m2): if fn not in self: if not match(fn): continue diff --git a/hggit/util.py b/hggit/util.py index c77e882038360e3fffa9024e5063f3a746e86362_aGdnaXQvdXRpbC5weQ==..1a19b41460aa40a765d8f49130e62cc07738de15_aGdnaXQvdXRpbC5weQ== 100644 --- a/hggit/util.py +++ b/hggit/util.py @@ -19,6 +19,8 @@ util as hgutil, ) +from . import compat + gitschemes = ('git', 'git+ssh', 'git+http', 'git+https') @@ -36,7 +38,7 @@ def serialize_hgsub(data): """Produces a string from OrderedDict hgsub content""" - return ''.join(['%s = %s\n' % (n, v) for n, v in data.iteritems()]) + return ''.join(['%s = %s\n' % (n, v) for n, v in compat.iteritems(data)]) def parse_hgsubstate(lines):