I had a problem with committing changes after merging two branches of my project using TortoiseSVN.
Here are details:
I did a merge branch to trunk of project which I am working on.
Project includes main repository and libraries joint to main repository as svn external (libraries are also branched) as subdirectory of project.
When I was trying to commit changes TortoiseSVN said:
Commit A
re all the targets part of the same working copy?
Unable to lock 'D:\websites\project\lib'
Please execute the "Cleanup" command.
Of course Cleanup didn't help.
svn:external keyword for project directory was well defined, also lib folder still contained proper version of libraries (trunk version).
Both SVN server and client are in 1.5.x version (TortoiseSVN is 1.5.3.x).
From technical point of view both project and libraries are projects in the same SVN repository.
Any idea what went wrong?
I had been googling a bit for the solution, but didn't find anything useful, so I tried to commit my changes in two steps:
Which went without any problems.
But I am still wondering why I couldn't commit everything in one commit.
EDITS:
svn:external will cause Subversion to combine different repository paths on check-out, but ultimately those paths are still 'disjoint', so you have to do two commits to get the changes applied.
Here's the relevant quote from Version Control with Subversion
And Subversion still truly operates only on nondisjoint 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.