On Mon, Jan 23, 2012 at 4:28 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Johan Corveleyn <jcor...@gmail.com> writes: > >> The only criterion is: is there a case-exact match in wc.db somewhere. >> Otherwise, go on and case-normalize to what's on disk. > > Even if the exact match is status=not-present|absent|excluded?
I think so. But maybe there's room for some fine-tuning here. I think it depends on whether or not there is anything sensible the user can do with that item (with status=not-present|absent|excluded). The crux of the matter, according to me, is: I, as a user, need a way to tell svn to do something with foo in wc.db, even if there is another FOO on disk. If I'm specifically giving svn the target 'foo', I really mean foo, not FOO. That goes for all 'foo' in wc.db on which "actions" are sensible ... I'm not 100% sure if that includes not-present|absent|excluded. The main principle is: it shouldn't matter whether there is a FOO in the way or not. Anything I can do with foo in wc.db, I should be able to invoke regardless of the ondisk-presence of FOO. If that's not possible, then there's really part of the wc.db that's unreachable for me, and that's a problem. While I was working on #3865, I thought it would be good enough to merely check for any case-exact matches in wc.db. I still think that's the easiest "heuristic", but maybe there's room for some further thought here. On Mon, Jan 23, 2012 at 5:04 PM, Philip Martin <philip.mar...@wandisco.com> wrote: > Johan Corveleyn <jcor...@gmail.com> writes: > >> If there is no case-exact match on disk, but there is a case-exact match >> in wc.db, assume the user refers to the latter. Otherwise case-normalize >> like any other Windows app. > > Is that sufficient? Given three files "foo", "FOO" and "Foo", one in > wc.db, one on disk and one on the command line, is that the same file? > Add another "fOO" to the database. It's now ambiguous? No, it's not: - Both fOO and foo exist in wc.db. - FOO is on disk. - I invoke 'svn <subcommand> Foo': 1. Is there a case-exact match in wc.db? No 2. Ok, then apply truepath-ing: so the user is meaning FOO. But the user can still do useful things to fOO and foo, if he gives the exact correct casing. -- Johan