--- a/mercurial/dirstate.py Fri Nov 11 00:22:02 2011 +0100
+++ b/mercurial/dirstate.py Tue Nov 15 14:33:06 2011 -0600
@@ -376,7 +376,7 @@
del self._map[f]
def _normalize(self, path, isknown):
- normed = os.path.normcase(path)
+ normed = util.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)):
--- a/mercurial/posix.py Fri Nov 11 00:22:02 2011 +0100
+++ b/mercurial/posix.py Tue Nov 15 14:33:06 2011 -0600
@@ -164,6 +164,10 @@
st2 = os.lstat(fpath2)
return st1.st_dev == st2.st_dev
+# os.path.normcase is a no-op, which doesn't help us on non-native filesystems
+def normcase(path):
+ return path.lower()
+
if sys.platform == 'darwin':
import fcntl # only needed on darwin, missing on jython
def realpath(path):
--- a/mercurial/util.py Fri Nov 11 00:22:02 2011 +0100
+++ b/mercurial/util.py Tue Nov 15 14:33:06 2011 -0600
@@ -44,6 +44,7 @@
makedir = platform.makedir
nlinks = platform.nlinks
normpath = platform.normpath
+normcase = platform.normcase
nulldev = platform.nulldev
openhardlinks = platform.openhardlinks
oslink = platform.oslink
--- a/mercurial/windows.py Fri Nov 11 00:22:02 2011 +0100
+++ b/mercurial/windows.py Tue Nov 15 14:33:06 2011 -0600
@@ -131,6 +131,8 @@
def normpath(path):
return pconvert(os.path.normpath(path))
+normcase = os.path.normcase
+
def realpath(path):
'''
Returns the true, canonical file system path equivalent to the given
--- a/tests/test-convert-bzr-directories.t Fri Nov 11 00:22:02 2011 +0100
+++ b/tests/test-convert-bzr-directories.t Tue Nov 15 14:33:06 2011 -0600
@@ -165,15 +165,15 @@
a => b
$ mkdir a
$ bzr add a
- adding a
+ add(ed|ing) a (re)
$ bzr mv b/c a/c
b/c => a/c
$ bzr status
added:
a/
renamed:
- a/ => b/
- a/c/ => a/c/
+ a/? => b/? (re)
+ a/c/? => a/c/? (re)
$ bzr commit -q -m 'Divergent renames'
$ cd ..
$ hg convert source source-hg