这是可能的,但不一定简单:您试图解决的问题非常接近于建立分布式开发环境,而这并不是 SVN 的设计目的。
SVN-镜像方式
您可以使用svn mirror
按照 SVN 书籍文档中的说明创建一个只读您的主存储库的镜像。您的开发人员每个人都与距离他们最近的镜子进行交互。但是,从属存储库的用户必须使用
svn switch --relocate master_url
在他们可以提交之前,他们必须记住一旦完成就重新定位回奴隶。如果您使用命令行客户端,则可以使用存储库周围的包装脚本来自动修改 SVN 上的命令。请记住,快速的重定位操作会增加一些开销。 (并小心复制存储库 uuid - 请参阅SVN 文档 http://svnbook.red-bean.com/en/1.5/svn.reposadmin.maint.html#svn.reposadmin.maint.replication.)
[编辑 - 检查乌龟SVN http://en.wikipedia.org/wiki/TortoiseSVN文档看来你可以拥有 TortoiseSVN客户端执行钩子脚本 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-settings.html#tsvn-dug-settings-hooks。此时您也许可以创建提交前/提交后脚本。或者尝试看看是否可以使用TortoiseSVN自动化接口 http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-automation.html去做吧]。
SVK之道
svk http://svk.bestpractical.com/view/HomePage是一组 Perl 脚本,用于模拟 SVN 上的分布式镜像服务。您可以进行设置,以便多个开发人员共享本地分支(镜像)。那么对于开发者来说基本的使用方式将是完全透明的。您将必须使用 svk 客户端进行樱桃采摘、合并和星形合并。如果您能够理解分布式概念,那么这是可行的。
git-svn 方式
虽然我自己从未使用过,但您也可以让远程开发人员在本地使用 git 并使用git-svn http://git-scm.com/docs/git-svn同步网关。
最后的话
这完全取决于您的开发环境和您所需的集成级别。取决于您的 IDE(如果您可以更改SCM http://en.wikipedia.org/wiki/Source_Code_Management)您可能想看看其他完全分布式的 SCM(想想水星 http://en.wikipedia.org/wiki/Mercurial/Bazaar http://en.wikipedia.org/wiki/Bazaar_%28software%29/Git http://en.wikipedia.org/wiki/Git_%28software%29/...),它支持开箱即用的分布式开发。