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.
Cheers, -g On May 3, 2011 5:41 PM, "Johan Corveleyn" <jcor...@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