mercurial/localrepo.py
changeset 6671 938eddd76237
parent 6647 602f7c1ab954
child 6684 3ef6adad4e43
--- a/mercurial/localrepo.py	Fri Jun 13 12:34:23 2008 +0200
+++ b/mercurial/localrepo.py	Fri Jun 13 17:29:10 2008 -0500
@@ -147,7 +147,11 @@
             if prevtags and prevtags[-1] != '\n':
                 fp.write('\n')
             for name in names:
-                fp.write('%s %s\n' % (hex(node), munge and munge(name) or name))
+                m = munge and munge(name) or name
+                if self._tagstypecache and name in self._tagstypecache:
+                    old = self.tagscache.get(name, nullid)
+                    fp.write('%s %s\n' % (hex(old), m))
+                fp.write('%s %s\n' % (hex(node), m))
             fp.close()
 
         prevtags = ''
@@ -303,9 +307,8 @@
             n = nh[0]
             if n != nullid:
                 self.tagscache[k] = n
-                self._tagstypecache[k] = tagtypes[k]
+            self._tagstypecache[k] = tagtypes[k]
         self.tagscache['tip'] = self.changelog.tip()
-
         return self.tagscache
 
     def tagtype(self, tagname):