[PATCH 2 of 4 V3] tags: read tag info into a sorted dict (rather than into a regular dict)

Angel Ezquerra angel.ezquerra at gmail.com
Wed Jun 25 18:22:08 CDT 2014


# HG changeset patch
# User Angel Ezquerra <angel.ezquerra at gmail.com>
# Date 1393121601 -3600
#      Sun Feb 23 03:13:21 2014 +0100
# Node ID 10ffd0db8fea2e7324233136b262822e775c45a5
# Parent  e500ce49a9a30c6fdd6179f46559690e03da65d1
tags: read tag info into a sorted dict (rather than into a regular dict)

This lets us preserve the original tag order (as specified on the .hgtags file
that is being read). This will be useful to preserve the tag order when saving
the result of a successful automated .hgtags merge (which will be introduced on
a future patch).

There shouldn't be much impact on performance because the sortdict that
_readtags returns is then used to update the alltags regular dict (which
remains a regular dict).

diff --git a/mercurial/tags.py b/mercurial/tags.py
--- a/mercurial/tags.py
+++ b/mercurial/tags.py
@@ -12,6 +12,7 @@
 
 from node import nullid, bin, hex, short
 from i18n import _
+import util
 import encoding
 import error
 import errno
@@ -81,7 +82,7 @@
     ids previously associated with it (in file order).  All node ids are
     binary, not hex.'''
 
-    filetags = {}               # map tag name to (node, hist)
+    filetags = util.sortdict()  # map tag name to (node, hist)
     count = 0
 
     def warn(msg):


More information about the Mercurial-devel mailing list