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

Re: svn cp treats filename as directory name

From: Ryan Schmidt <subversion-2008c_at_ryandesign.com>
Date: Tue, 7 Oct 2008 17:21:44 -0500

On Oct 7, 2008, at 16:45, Steve Strobel wrote:

>> svn cp svn://192.168.25.29/trunk/linux-2.6.x/sound/blackfin/
>> Makefile_at_232 svn://192.168.25.29/trunk/linux-2.6.x/sound/blackfin/
>> Makefile -m "Copying from rev 232 to maintain history of the files
>> we changed."
>> svn: Failure opening '/trunk/linux-2.6.x/sound/blackfin/Makefile/
>> Makefile'
>> svn: '/trunk/linux-2.6.x/sound/blackfin/Makefile' is not a
>> directory in filesystem 'C:/Shared/SVN_Repo_uClinux/db'
>>
>> What is the correct syntax to copy (with history) that Makefile as
>> it existed in the trunk in rev 232 to the head?
>
> I finally figured out how to do what I want to do, but I still
> think that the error messages
> Subversion prints are less than helpful, and in the case where it
> repeats "...Makefile/Makefile",
> just plain wrong (I could see it interpreting my command to mean
> either a file
> called "Makefile" or a directory called "Makefile", but there is no
> way that command
> could mean ".../Makefile/Makefile").
>
> My problem was that linux-2.6.x/sound/blackfin/Makefile already
> existed in the trunk.
> Apparently "svn copy" doesn't overwrite, so you have to "svn
> delete" then "svn update"
> the file before doing the "svn copy". Otherwise you get a message
> about the file
> not being a directory. How intuitive :( I would like to suggest
> a different error message,
> maybe something like
>
> svn: Failure copying '/trunk/linux-2.6.x/sound/blackfin/Makefile'.
> File already exists.

Correct, Subversion does not overwrite files when you use "svn cp".
You must remove the existing item first with "svn rm" if you want to
overwrite it.

Subversion noticed "Makefile" existed in the destination, and seems
to have continued as if it were a directory, thus trying to copy your
source "Makefile" into the destination directory "Makefile" (with the
resulting file's path being "Makefile/Makefile"). But it failed
because the destination directory "Makefile" was not a directory.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-10-08 00:21:59 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.