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" <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
Received on 2011-05-03 23:54:22 CEST