tags:

views:

648

answers:

3

svn:externals can be great for sucking in central libraries or IP into a project, so that they can be kept in one location accessible for all.

But if I'm asking people to external tags of common IP (so it doesn't change on them) it opens the possibility of them inadvertently committing changes to the tag.

How can I make svn:externals read-only? It's acceptable if there is some extra argument or some way of making the external that we can add to the procedure for everyone to follow.

+3  A: 

Make the external repositories read-only to everyone except their maintainers.

J. John
A: 

svn:externals just makes checkouts.

If you want to prevent some people from committing to something they are not supposed to be committing to, you can use repository-level access-control or path-based authorization.

If you do not trust your developers to know what they are changing and committing, you need to stop them from committing to trunk anyway, and have integration go through a gatekeeper, either human or programmatic.

Anyway, people should not normally have to modify dependences. If they do, you have serious architecture problems.

ddaa
The point isn't that the developers are incompetent, it's that if you look at a tortoise working copy, it isn't clear what folders are externals and which are not. It would be easy for someone to make an error.
rdb78
I did not say anything about the developers competence. The issue is apparently that they are not trusted, regardless the root cause: crappy tools or dim wit.
ddaa
+1  A: 

Actually, TortoiseSVN detects you are trying to commit to a tag through the commit hook, and warns the user of this, which basically satisfies my requirement for a speed bump. So we're already good.

rdb78