[issue3270] mq: qrefresh is case sensitive on case insensitive filesystems

dbrakhane bugs at mercurial.selenic.com
Tue Feb 14 16:55:07 CST 2012

New submission from dbrakhane <brakhane at googlemail.com>:

(Not sure if it's a bug, but at least it's an inconsistency that bit me)

Unlike (q)diff, but like commit, qrefresh is case sensitive. This is bad
since qref does not print any warning if a given file was not found:

> hg version
Mercurial Distributed SCM (version 2.1)
(see http://mercurial.selenic.com for more information)

> hg init foo
> cd foo
> echo A > A
> echo B > B
> hg commit -Amfoo
> hg qnew foo
> echo a > A
> echo b > B

Now I want to prepare to put "A" in the mq patch, but write it as lowercase

> hg qref a

No warning, nothing. But actually I now have an empty patch

> hg diff a
diff -r f5d460f9c189 A
--- a/A Tue Feb 14 23:42:23 2012 +0100
+++ b/A Tue Feb 14 23:45:05 2012 +0100
@@ -1,1 +1,1 @@

Notice how "diff" (and qdiff too) knows that I actually meant A, not a.

> hg qref a B
> hg qnew foo

would result in only "B" being added. and "A" being in the new "foo" patch

I'm not sure what the actual issue is here:

1. that qref is still case sensitive on non-case sensitive file system (but
commit also isn't, but aborts)
2. that (q)diff is not case sensitive
3. that qref does not emit a warning if a specified file was not found

messages: 19090
nosy: dbrakhane
priority: bug
status: unread
title: mq: qrefresh is case sensitive on case insensitive filesystems

Mercurial issue tracker <bugs at mercurial.selenic.com>

More information about the Mercurial-devel mailing list