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

login
register
mail settings
Submitter Angel Ezquerra
Date June 25, 2014, 11:22 p.m.
Message ID <10ffd0db8fea2e732423.1403738528@ubuntu>
Download mbox | patch
Permalink /patch/5067/
State Accepted
Commit 5125856a28cf96ab4b54712ab86732f06e87b34a
Headers show

Comments

Angel Ezquerra - June 25, 2014, 11:22 p.m.
# HG changeset patch
# User Angel Ezquerra <angel.ezquerra@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).
Matt Mackall - June 26, 2014, 11:34 p.m.
On Thu, 2014-06-26 at 01:22 +0200, Angel Ezquerra wrote:
> # HG changeset patch
> # User Angel Ezquerra <angel.ezquerra@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)

First two are queued, thanks.

Patch

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):