changeset 4497:22ebd6ee5672

merge with crew-stable
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Mon, 04 Jun 2007 00:26:53 -0300
parents b79cdb7f0597 (current diff) 7605da1c3b5c (diff)
children eb26f8f70364
files hgext/hbisect.py mercurial/localrepo.py mercurial/revlog.py
diffstat 6 files changed, 29 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/hbisect.py
+++ b/hgext/hbisect.py
@@ -136,7 +136,7 @@ class bisect(object):
             return d
 
         if head in stop:
-            raise util.Abort(_("Unconsistent state, %s:%s is good and bad")
+            raise util.Abort(_("Inconsistent state, %s:%s is good and bad")
                              % (cl.rev(head), hg.short(head)))
         n_child = num_children(head)
         for i in xrange(cl.rev(head)+1):
--- a/mercurial/hgweb/wsgicgi.py
+++ b/mercurial/hgweb/wsgicgi.py
@@ -12,6 +12,7 @@ import os, sys
 from mercurial import util
 
 def launch(application):
+    util.set_binary(sys.stdin)
     util.set_binary(sys.stdout)
 
     environ = dict(os.environ.items())
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -303,7 +303,7 @@ class localrepository(repo.repository):
                 if bn != an and an in bh and \
                    (bn not in ah or len(bh) > len(ah)):
                     an = bn
-                ah.append([n for n in bh if n not in ah])
+                ah.extend([n for n in bh if n not in ah])
                 globaltags[k] = an, ah
 
         # read the tags file from each head, ending with the tip
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -347,7 +347,8 @@ class revlog(object):
                 if (oldst and st.st_dev == oldst.st_dev
                     and st.st_ino == oldst.st_ino
                     and st.st_mtime == oldst.st_mtime
-                    and st.st_ctime == oldst.st_ctime):
+                    and st.st_ctime == oldst.st_ctime
+                    and st.st_size == oldst.st_size):
                     return
                 self.indexstat = st
             if len(i) > 0:
--- a/tests/test-tags
+++ b/tests/test-tags
@@ -104,4 +104,21 @@ hg ci -m 'change foo' -d '1000000 0'    
 hg tags
 
 hg tag -d '1000000 0' -r 3 bar         # should complain
-hg tags
\ No newline at end of file
+hg tags
+
+# test tag rank with 3 heads
+cd ..
+hg init t4
+cd t4
+echo foo > foo
+hg add
+hg ci -m 'add foo' -d '0 0'                # rev 0
+hg tag -d '0 0' bar                        # rev 1 bar -> 0
+hg tag -d '0 0' -f bar                     # rev 2 bar -> 1
+hg up -qC 0
+hg tag -d '0 0' -fr 2 bar                  # rev 3 bar -> 2
+hg tags
+hg up -qC 0
+hg tag -d '0 0' -m 'retag rev 0' -fr 0 bar # rev 4 bar -> 0, but bar stays at 2
+echo % bar should still point to rev 2
+hg tags
--- a/tests/test-tags.out
+++ b/tests/test-tags.out
@@ -57,3 +57,9 @@ bar                                0:b40
 abort: a tag named bar already exists (use -f to force)
 tip                                6:b5ff9d142648
 bar                                0:b409d9da318e
+adding foo
+tip                                3:ca8479b4351c
+bar                                2:72b852876a42
+% bar should still point to rev 2
+tip                                4:40af5d225513
+bar                                2:72b852876a42