我公司已与互联网连接速度较慢的子公司。 我们的开发人员有苦与我们的中央互动的Subversion服务器。 是否有可能配置从属/镜像又在哪里? 他们将与本地服务器交互,所有提交将被自动同步到主服务器。
这应该尽可能透明地为开发商。 可用性是必须的。
请,不建议改变我们的版本控制系统。
我公司已与互联网连接速度较慢的子公司。 我们的开发人员有苦与我们的中央互动的Subversion服务器。 是否有可能配置从属/镜像又在哪里? 他们将与本地服务器交互,所有提交将被自动同步到主服务器。
这应该尽可能透明地为开发商。 可用性是必须的。
请,不建议改变我们的版本控制系统。
颠覆1.5当你使用HTTP来承载你的资料库介绍代理支持。 开发人员可以从从签他们的工作副本。 然后,所有只读操作(diff,日志查询,升级等)将使用奴隶。 提交时,从透明地通过了所有的写操作的高手。
这是可能的,但不一定是简单的:你正在试图解决的问题是危险地接近建立一个分布式的开发环境,不正是SVN是专为。
该SVN镜方式
您可以使用svn mirror
为SVN书文档中解释创建一个只读的主存储库的镜子。 你的开发人员每最接近他们的互动镜。 但是从资料库的用户将不得不使用
SVN切换--relocate master_url
才可以承诺,他们必须记住,一旦他们完成搬迁回来的奴隶。 这可以利用周围的资源库上SVN修改命令,如果你使用命令行客户端一个包装脚本自动化。 请记住,虽然移居操作快捷增加了一些开销。 (此外,小心复制库UUID -看到的SVN文件 。)
[编辑-检查TortoiseSVN的似乎可以有TortoiseSVN的文件执行钩子脚本客户端 。 您可以创建一个前/后在这一点上提交脚本。 如果不是这样,尝试看看你能不能用TortoiseSVN的自动化接口来做到这一点。
该SVK方式
SVK是一组模拟了SVN分布式镜像服务Perl脚本。 让当地分公司(镜)是由多个开发人员共享您可以设置它。 那么对于开发者基本用法是完全透明的。 你将不得不使用SVK客户端樱桃采摘,合并和starmerging。 这是可行的,如果你能在周围分布概念,让你的头。
该混帐svn的方式
虽然我从未使用过自己,你也可以有遥远的本地开发商使用git,使用的git - svn的网关进行同步。
最后的话
这一切都取决于你的开发环境,你需要集成的水平。 根据您的IDE(如果你可以改变SCM ),你可能想看看其他的完全分布式的SCM(认为水银 / 巴扎 / 混帐 / ...)支持分布式开发的开箱。
你应该尝试的SVK版本控制系统
SVK与强大的Subversion文件系统建立了一个分布式版本控制系统。 它支持库镜像,离线操作,历史敏感的合并,以及与其他版本控制系统,以及流行的视觉合并工具集成。
在这个环节有关于文字使用SVK进行同步SVN信息库
如果存储库中的一个完全只读,你可以使用“svnsync的”保持它与最新的主存储库。 该工具通常用于结合所述代理支持创建主从设置。
如阿帕奇这样做是为了自己的仓库镜像到不同的大洲。 主repostitory位于美国,但如果我从欧盟访问存储库,我得到一个本地镜像的作品一样好主服务器。
该inotify工具很适合我,细节本网站上提到:
http://planet.admon.org/synchronize-subversion-repositories-with-inotify-tools/
还有的是,提供真正的主动 - 主动复制Subversion版本库的(不是主从)如果需要性能和数据安全性超越了svnsync的提供了一个名为“颠覆多点会议”商业解决方案。
免责声明:我的公司,使该解决方案的工作
VisualSVN服务器的多站点复制库是专为这种情况。
您可以在远程位置保持主存储库的主要办公室和设置多个写入从仓库。
这应该尽可能透明地为开发商。 可用性是必须的。
从设备和主设备之间的复制是透明和自动的,
每个主设备和从存储库是从用户的角度来看的可写Subversion信息库,
工作外的开箱,可以在通过VisualSVN服务器管理器MMC控制台点几下进行配置。