tags:

views:

214

answers:

3

I am using svn 1.6, is it possible to have: ?

source directory
shared\code\depends\make1.3
- contains file make.1.3

target directory
trunk\make\
- i want make.1.3 in trunk\make\

Have an SVN external from the above source to the target
I have tried

/shared/code/depends/make1.3 make

When i do an update i get error:

 External failed, working copy is locked, please execute cleanup command.

After executing cleanup, still the same problem.

+1  A: 

The issue could be related to the fact you want to make change to a disjoint path (the one referenced by your external), whereas you may have only done your last commit from another path.

As mentioned by the Svnbook

Subversion still truly operates only on non-disjoint working copies.
So, for example, if you want to commit changes that you've made in one or more of those external working copies, you must run svn commit explicitly on those working copies—committing on the primary working copy will not recurse into any external ones.

You could try the same manip from a fresh checkout.
You must be sure to not remove/update the content of your make1.3 directory, otherwise you would need to svn revert to the original content (see this SO answer)

VonC
Thank you for the reply.
dnndeveloper
A: 

I figured out the answer, to use externals on a single file use from source to target directory use:

source directory
shared\code\depends\make1.3
- contains file make.1.3

target directory
trunk\make\
- i want make.1.3 in trunk\make\

:

/shared/code/depends/make1.3/filename.txt filename.txt

the above external command will put the single file in trunk\make\filename.txt

dnndeveloper
Thank you for this feedback. +1
VonC
A: 

Thanks for this. Just thought to add that until Subversion v1.6.6 (as yet unreleased at time of posting) there is a bug which prevents binaries from being handled singly in the manner specified dnndeveloper.