localrepo/branchcache: remove lbranchmap(), convert users to use utf-8 names
authorBenoit Boissinot <benoit.boissinot@ens-lyon.org>
Sat, 31 Oct 2009 00:31:08 +0100
changeset 9675 ee913987e4b0
parent 9674 603b23c6967b
child 9676 48bf28d3c8dd
localrepo/branchcache: remove lbranchmap(), convert users to use utf-8 names We don't need a "local-charset" aware branchmap() function, we can convert the names when needed during the output.
mercurial/commands.py
mercurial/localrepo.py
--- a/mercurial/commands.py	Sat Oct 31 00:27:50 2009 +0100
+++ b/mercurial/commands.py	Sat Oct 31 00:31:08 2009 +0100
@@ -450,8 +450,7 @@
     """
 
     hexfunc = ui.debugflag and hex or short
-    activebranches = [encoding.tolocal(repo[n].branch())
-                            for n in repo.heads()]
+    activebranches = [repo[n].branch() for n in repo.heads()]
     def testactive(tag, node):
         realhead = tag in activebranches
         open = node in repo.branchheads(tag, closed=False)
@@ -462,8 +461,9 @@
 
     for isactive, node, tag in branches:
         if (not active) or isactive:
+            encodedtag = encoding.tolocal(tag)
             if ui.quiet:
-                ui.write("%s\n" % tag)
+                ui.write("%s\n" % encodedtag)
             else:
                 hn = repo.lookup(node)
                 if isactive:
@@ -474,8 +474,8 @@
                     notice = ' (closed)'
                 else:
                     notice = ' (inactive)'
-                rev = str(node).rjust(31 - encoding.colwidth(tag))
-                data = tag, rev, hexfunc(hn), notice
+                rev = str(node).rjust(31 - encoding.colwidth(encodedtag))
+                data = encodedtag, rev, hexfunc(hn), notice
                 ui.write("%s %s:%s%s\n" % data)
 
 def bundle(ui, repo, fname, dest=None, **opts):
@@ -1401,21 +1401,22 @@
         heads = []
         visitedset = set()
         for branchrev in branchrevs:
-            branch = repo[branchrev].branch()
+            branch = repo[encoding.fromlocal(branchrev)].branch()
+            encodedbranch = encoding.tolocal(branch)
             if branch in visitedset:
                 continue
             visitedset.add(branch)
             bheads = repo.branchheads(branch, start, closed=closed)
             if not bheads:
                 if not opts.get('rev'):
-                    ui.warn(_("no open branch heads on branch %s\n") % branch)
+                    ui.warn(_("no open branch heads on branch %s\n") % encodedbranch)
                 elif branch != branchrev:
                     ui.warn(_("no changes on branch %s containing %s are "
                               "reachable from %s\n")
-                            % (branch, branchrev, opts.get('rev')))
+                            % (encodedbranch, branchrev, opts.get('rev')))
                 else:
                     ui.warn(_("no changes on branch %s are reachable from %s\n")
-                            % (branch, opts.get('rev')))
+                            % (encodedbranch, opts.get('rev')))
             if hideinactive:
                 bheads = [bhead for bhead in bheads if bhead in _heads]
             heads.extend(bheads)
--- a/mercurial/localrepo.py	Sat Oct 31 00:27:50 2009 +0100
+++ b/mercurial/localrepo.py	Sat Oct 31 00:31:08 2009 +0100
@@ -318,16 +318,6 @@
 
         return partial
 
-    def lbranchmap(self):
-        branchcache = {}
-        partial = self.branchmap()
-
-        # the branch cache is stored on disk as UTF-8, but in the local
-        # charset internally
-        for k, v in partial.iteritems():
-            branchcache[encoding.tolocal(k)] = v
-        return branchcache
-
     def branchmap(self):
         tip = self.changelog.tip()
         if self._branchcache is not None and self._branchcachetip == tip:
@@ -351,7 +341,7 @@
         '''return a dict where branch names map to the tipmost head of
         the branch, open heads come before closed'''
         bt = {}
-        for bn, heads in self.lbranchmap().iteritems():
+        for bn, heads in self.branchmap().iteritems():
             head = None
             for i in range(len(heads)-1, -1, -1):
                 h = heads[i]
@@ -1167,7 +1157,7 @@
         '''
         if branch is None:
             branch = self[None].branch()
-        branches = self.lbranchmap()
+        branches = self.branchmap()
         if branch not in branches:
             return []
         # the cache returns heads ordered lowest to highest