1: hg -R c:\ws\codeplex\visualhg st C:\ws\codeplex\visualhg returns 'abort: C:\ws\codeplex\visualhg not under root' 2: hg -R c:\ws\codeplex\visualhg st c:\ws\codeplex\visualhg returns good results hg works when the drive letter case match. I tested on Windows 7 with hg 1.5.1, and on Windows 2003 with hg 1.4.3
My current working directory is not c:\ws\codeplex\visualhg when I do these tests. more tests: hg -R c:\ws\codeplex\visualhg st C:\ws\codeplex\visualhg\Solution\Readme.txt abort: C:\ws\codeplex\visualhg\Solution\Readme.txt not under root hg -R C:\ws\codeplex\visualhg st -A C:\ws\codeplex\visualhg\Solution\Readme.txt C ..\..\ws\codeplex\visualhg\Solution\Readme.txt hg -R c:\ws\codeplex\visualhg st -A c:\ws\codeplex\visualhg\Solution\Readme.txt C c:\ws\codeplex\visualhg\Solution\Readme.txt
Presumed fixed.
Still an issue with Mercurial 2.0.2 on Windows 7
Confirmed. This turns out to be a more general problem, expanding title. Both canonpath and pathto do naive case-sensitive comparisons between paths, including the user-supplied repository root, getcwd(), and user-supplied file paths. Differences in case can result in strange behavior. Fixing this turns out to be quite difficult, especially in util.pathto, which isn't aware of whether casefolding is in effect.
I think issue3146 also comes from same reason of this issue. In addition to canonpath()/pathto(), "path.startswith(root)" invocations in many places to check whether path is ROOTED or not seems to be also one of reasons for this kind problems.
issue2285 is also duplicate of this issue, is not ?
Adding nosy from 2285
--- Bug imported by bugzilla@serpentine.com 2012-05-12 09:08 EDT --- This bug was previously known as _bug_ 2167 at http://mercurial.selenic.com/bts/issue2167
The testsuite on Windows as of 2255950e1f76 triggers this bug here in a massive way, as documented on http://bz.selenic.com/show_bug.cgi?id=3490 For the testsuite, I have submitted a workaround patch.
Possibly fixed in stable by: 21e18c608b68 scmutil: change canonpath to use util.samefile
Mass close old bugs in testing.