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

Re: [RFC] Case-only renames on Windows - how to proceed?

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Thu, 05 May 2011 20:34:48 +0200

On 03.05.2011 23:53, Greg Stein wrote:
> I suggest (1). Fix issue 3865 with a new WC API to normalize targets, usable
> by higher levels. That API would follow the 3-step process described at the
> end of the issue description.

+1

Stefan

>
> Cheers,
> -g
> On May 3, 2011 5:41 PM, "Johan Corveleyn"<jcorvel_at_gmail.com> wrote:
>> Hi all,
>>
>> After the discussions in [1] and [2], I'd like to know if and how to
>> proceed with making case-only renames work on Windows (or
>> case-insensitive filesystems in general). Following my attempted patch
>> ([1]), I got some good feedback from brane and danielsh, but I'd like
>> some more opinions, ideally reach some sort of consensus.
>>
>> Summarized, the situation is this: with the patch in [1] I can perform
>> a case-only rename on Windows, but it's difficult to commit that
>> rename directly (meaning "a commit addressing the moved targets
>> directly"), because of issue #3865 [3]. This difficulty to address the
>> scheduled-for-delete part of the rename is actually already there
>> without the case-only-rename patch.
>>
>> I see a couple of ways to proceed:
>>
>> (1) Just punt on the entire issue, and leave it for 1.8 or later. Note
>> that issue #3865 still causes grief because it prevents the command
>> line client from directly committing a two-step-case-only-rename (svn
>> mv A A2; svn mv A2 a), which is possible as of wc-ng.
>>
>> (2.a) Commit patch [1] (or an evolution thereof), making
>> case-only-renames possible in one step. They are still not directly
>> committable with the CLI because of issue #3865. But at least they can
>> be committed with a recursive commit on the parent, or directly via a
>> client other than the command line client (depends on that other
>> client of course).
>>
>> (2.b) Commit patch [1] and fix issue #3865 with some special-case fix
>> for "commit", as suggested by brane: when committing an Add from the
>> CLI, check if there isn't also a corresponding scheduled-for-delete
>> file with the same truepath, "hidden from view" - if so commit it
>> also.
>>
>> (2.c) Commit patch [1] and fix issue #3865 by introducing a new
>> command line option '--literal-path', as suggested by danielsh, which
>> makes it possible to address the scheduled-for-delete part of the
>> rename.
>>
>> (2.d) Commit patch [1] and fix issue #3865 with a more general change
>> of the truepath dance. I.e. do truepath canonicalization of
>> path-targets only after first checking if those targets aren't
>> actually matching (exactly) a path in the wc metadata. I don't know if
>> this is at all possible/viable ...
>>
>>
>> Thoughts?
>>
>> [1] http://svn.haxx.se/dev/archive-2011-04/0277.shtml
>> [2] http://svn.haxx.se/dev/archive-2011-04/0232.shtml
>> [3] http://subversion.tigris.org/issues/show_bug.cgi?id=3865 ('svn' on
>> Windows cannot address scheduled-for-delete file, if another file
>> differing only in case is present on disk)
>>
>> --
>> Johan
>

-- 
        ___
   oo  // \\      "De Chelonian Mobile"
  (_,\/ \_/ \     TortoiseSVN
    \ \_/_\_/>    The coolest Interface to (Sub)Version Control
    /_/   \_\     http://tortoisesvn.net
Received on 2011-05-05 20:35:22 CEST

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.