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

Incorrect error message on svn copy? Advice?

From: Dan Ellis <danellis10_at_gmail.com>
Date: Tue, 20 May 2014 15:02:49 -0700

Hi,

I'm wondering if I'm getting an incorrect error message...

I'm attempting to copy a file from a working copy to the server, but using
an incorrect case for one of the folders in the path. The paths all exist
and everything works fine using correct case. In the example below, "FOO"
exists on the server as "foo".

(Case 1)
c:\Project_files\sandbox>svn copy bar.c
http://svr/repo/some_project/FOO/bar.c -m "text commit"
Adding copy of bar.c
svn: E155011: Commit failed (details follow):
svn: E155011: File 'C:\Project_files\sandbox\bar.c' is out of date
svn: E160013: File not found: transaction '4249-3lp', path
'/some_project/FOO/bar.c'

If I correctly use "foo" instead of "FOO", I get the expected response:

(Case 2)
c:\Project_files\sandbox>svn copy bar.c
http://svr/repo/some_project/foo/bar.c -m "test commit"
Adding copy of bar.c

Committed revision 4249.

If I use --parents to create the path (in case it doesn't exist):

(Case 3)
c:\Project_files\sandbox>svn copy --parents bar.c
http://svr/repo/some_project/FOO/bar.c -m "test commit"
Adding copy of bar.c
svn: E165001: Commit failed (details follow):
svn: E165001: Commit blocked by pre-commit hook (exit code 1) with output:
** ERROR-CASE: This repository is set to be case insensitive.
** ERROR-CASE: Clash: '/some_project/FOO' '/some_project/foo'

It appears we are using a server-side script to prevent name clashes (since
we are using windows clients) on our server in Case 3. Why would Case 3
get caught (--parents) but Case 1 seem to slip by this server side script
and return a different error? I assume we're using the
stock case-insensitive.py, but regardless, I don't understand the behavior
difference.

As I would expect, I cannot perform an "svn info" on the incorrect-cased
path. I was hoping I could do an "svn info" to test/determine what the
case corrected path is, but will have to try an "svn copy --parents" first
and if it fails due to a case clash, retry with the returned clash info.
 Is there a better way to accomplish this? I do understand this is more of
a corner use case, especially since Subversion is (properly IMO) designed
around case sensitivity.

Thanks,
Dan
Received on 2014-05-21 00:03:25 CEST

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

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