3
votes

Short and sweet:

I have one project with an external, which allows me to commit changes to files in that external alongside changes to the main trunk in one operation:

enter image description here

I have another project with an external, which does not allow me to commit changes alongside the main trunk:

enter image description here

The most obvious difference is that the second external is checked out to a compound directory, but other than that I cannot find a difference that would, to miy mind, be preventing SVN from committing everything together.

What's going on here? Obviously I want to be able to commit changes to externals along with the changes to the trunk in one operation. How can I make this happen in the second case?

1
What happens when you try to commit? Do you control the SVN server? The server may have access rules in place so only certain people may commit, or rules that commit messages must be at least X characters long, etc etc.Rachel Sanders
I (well we as the development team) control the SVN server. You can see in the images that the second eternal file is disabled in the list; I can't check the box to commit it.KeithS
There doesn't seem to be any length of log message that enables the external, and there are no properties inside the folder structure of the external itself, so I'd say this isn't by our design. I can commit the changes explicitly by going to that external directory and committing from there, but why do I have to do that when Tortoise obviously knows what changed?KeithS

1 Answers

4
votes

The answer turned out to be the compound directory. For some reason, externals checked out to a subfolder immediately under the root project, like "SharedLib", can have changes committed, no matter how much deeper the changes actually are. Externals checked out to a folder structure like "Externals/SharedLib" cannot. That also means that externals checked out from various sources into a single subdirectory (to avoid having to get an entire external when you only need one library) won't allow commits.

I'll make do. Now that I know it's an issue I'll adjust how externals are set up when I want to actually work with them and not just have them around.