On Mon, Sep 12, 2011 at 12:37 PM, Philip Martin
<philip.martin_at_wandisco.com> wrote:
> Johan Corveleyn <jcorvel_at_gmail.com> writes:
>
>> No, I don't think that's the problem. That should work (can't test
>> right now, being @work, but I don't see why it wouldn't work on
>> Windows). I think the OP means that the following doesn't work:
>>
>> # move foo FOO
>> # svn ci
>>
>> (i.e. doing the rename outside of svn)
>
> I know the rename is done outside svn, but the original post shows "svn
> rm" and an "svn add" after that. So it appears that
>
> # move foo FOO
> # svn rm foo
> # svn add FOO
> # svn ci
>
> doesn't work on Windows. The difference between this and the cases that
> are known to work is that in the above case FOO is added without any
> copyfrom.
Oh, sorry, I misread that part.
There might indeed be a problem, and I think it might be caused by the
fix for issue #3865 [1] ('svn' on Windows cannot address
scheduled-for-delete file, if another file differing only in case is
present on disk), which was needed to fully support case-only renames
for issue #3702.
For fixing #3865, we introduced some code to be able to make 'svn'
address items (1) which are no longer present on disk, (2) which are
still present in wc.db, and (3) for which another case-clashing file
*is* on disk. This was needed to be able to perform "svn commit foo
FOO", after doing the case-only rename with svn. Without the changes
for #3865, svn (on Windows) would always "case-normalize" its
arguments to whatever it finds on disk, so it would always think
you're talking about FOO.
I'm not sure how this relates precisely to this scenario (would have
to play around with it @home), but maybe there is a bug in that code,
or maybe it simply doesn't work with the current implementation. I'll
try to take a look tonight, but if you or anyone else gets there
first: the code for fixing issue #3865 was introduced in r1124469.
--
Johan
[1] http://subversion.tigris.org/issues/show_bug.cgi?id=3865
Received on 2011-09-12 13:39:01 CEST