问题
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:
- commit changes from project folder
- commit changes from libraries folder
Which went without any problems.
But I am still wondering why I couldn't commit everything in one commit.
EDITS:
- (After Ken G answer) Fixed version of TortoiseSVN 1.3.x -> 1.5.3.x.
回答1:
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.
回答2:
1.3 of TortoiseSVN is very old, the latest revision being 1.5.x. There have been numerous changes in both Subversion and TortoiseSVN since 1.3, so upgrading your client is probably your best bet.
Having said that, 1.5 TortoiseSVN is going to create/update Working Copies to a version 1.5 format. BE VERY CAREFUL when using TortoiseSVN (or any SVN client) against a previous Subversion's working copy.
回答3:
I think I remember reading about a bug relating to this in TortoiseSVN that's been fixed in the latest release. Check the latest release notes.
来源:https://stackoverflow.com/questions/223355/i-cannot-commit-changes-after-merge-in-svn