[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: How to fix issue #4023 (on Windows, 'svn rm missingItem' deletes the unversioned 'MissingItem' from disk)?

From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Tue, 24 Jan 2012 00:27:46 +0100

On Mon, Jan 23, 2012 at 4:28 PM, Philip Martin
<philip.martin_at_wandisco.com> wrote:
> Johan Corveleyn <jcorvel_at_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.martin_at_wandisco.com> wrote:
> Johan Corveleyn <jcorvel_at_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
Received on 2012-01-24 00:28:43 CET

This is an archived mail posted to the Subversion Dev mailing list.