changeset 13738:83bf80c50e76 stable

merge with i18n
author Wagner Bruna <wbruna@softwareexpress.com.br>
date Wed, 23 Mar 2011 11:57:10 -0300
parents 6783f47d90dd (diff) 8c3e0542e153 (current diff)
children 913c2c66a555
files
diffstat 3 files changed, 29 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/hgext/mq.py	Mon Mar 14 23:48:17 2011 +0100
+++ b/hgext/mq.py	Wed Mar 23 11:57:10 2011 -0300
@@ -2383,7 +2383,7 @@
     When -f/--force is applied, all local changes in patched files
     will be lost.
 
-    Return 0 on succces.
+    Return 0 on success.
     """
     q = repo.mq
     mergeq = None
--- a/mercurial/dirstate.py	Mon Mar 14 23:48:17 2011 +0100
+++ b/mercurial/dirstate.py	Wed Mar 23 11:57:10 2011 -0300
@@ -362,16 +362,34 @@
         except KeyError:
             self._ui.warn(_("not in dirstate: %s\n") % f)
 
-    def _normalize(self, path, knownpath):
-        norm_path = os.path.normcase(path)
-        fold_path = self._foldmap.get(norm_path, None)
-        if fold_path is None:
-            if knownpath or not os.path.lexists(os.path.join(self._root, path)):
-                fold_path = path
+    def _normalize(self, path, isknown):
+        normed = os.path.normcase(path)
+        folded = self._foldmap.get(normed, None)
+        if folded is None:
+            if isknown or not os.path.lexists(os.path.join(self._root, path)):
+                folded = path
             else:
-                fold_path = self._foldmap.setdefault(norm_path,
+                folded = self._foldmap.setdefault(normed,
                                 util.fspath(path, self._root))
-        return fold_path
+        return folded
+
+    def normalize(self, path, isknown=False):
+        '''
+        normalize the case of a pathname when on a casefolding filesystem
+
+        isknown specifies whether the filename came from walking the
+        disk, to avoid extra filesystem access
+
+        The normalized case is determined based on the following precedence:
+
+        - version of name already stored in the dirstate
+        - version of name stored on disk
+        - version provided via command arguments
+        '''
+
+        if self._checkcase:
+            return self._normalize(path, isknown)
+        return path
 
     def clear(self):
         self._map = {}
--- a/mercurial/merge.py	Mon Mar 14 23:48:17 2011 +0100
+++ b/mercurial/merge.py	Wed Mar 23 11:57:10 2011 -0300
@@ -338,7 +338,8 @@
                 else:
                     merged += 1
             util.set_flags(repo.wjoin(fd), 'l' in flags, 'x' in flags)
-            if f != fd and move and os.path.lexists(repo.wjoin(f)):
+            if (move and repo.dirstate.normalize(fd) != f
+                and os.path.lexists(repo.wjoin(f))):
                 repo.ui.debug("removing %s\n" % f)
                 os.unlink(repo.wjoin(f))
         elif m == "g": # get