我公司附属公司与互联网连接速度较慢。我们的开发商那里遭受到与我们的中央 颠复 服务器。它可能是配置从镜子用于他们?他们会互动,在本地服务器和所有提交会自动同步的主服务器。

这应该工作的透明作为可能为开发商进行开发。可用性是必须的。

请,不建议改变我们的版本控制系统。

有帮助吗?

解决方案

当您使用http来托管您的存储库时,Subversion 1.5引入了代理支持。开发人员可以从奴隶核对他们的工作副本。然后所有只读操作(差异,日志,更新等)将使用从属。提交时,从设备透明地将所有写操作传递给主设备。

其他提示

这是可能但不一定简单:您尝试解决的问题非常危险地接近于设置分布式开发环境,这不完全是SVN的设计目标。

SVN镜像方式

您可以按照SVN书籍文档中的说明使用 svn mirror 来创建主存储库的只读镜像。您的开发人员各自与最接近他们的镜像进行交互。但是,从属存储库的用户必须使用

svn switch --relocate master_url

在他们可以提交之前,他们将不得不记得在完成后重新安置奴隶。如果您使用命令行客户端,则可以使用围绕SVN上的存储库修改命令的包装器脚本自动执行此操作。请记住,快速重定位操作会增加一些开销。 (并小心复制存储库uuid - 请参阅 SVN文档。)

[编辑 - 检查 TortoiseSVN 文档,您似乎可以使用TortoiseSVN 执行钩子脚本客户端。您可以在此时创建前/后提交脚本。要么是这样,要么试着看看你是否可以使用 TortoiseSVN自动化界面来做吧。

SVK方式

svk 是一组Perl脚本,它通过SVN模拟分布式镜像服务。您可以对其进行设置,以便多个开发人员共享本地分支(镜像)。然后开发人员的基本用法将完全透明。您将不得不使用svk客户端进行樱桃采摘,合并和starmerging。如果您能够了解分布式概念,那么这是可行的。

git-svn方式

虽然我自己从未使用过,但也可以让远程开发人员在本地使用git并使用 git -svn 同步网关。

最后的话

这完全取决于您的开发环境和所需的集成级别。根据您的IDE(如果您可以更改 SCM ),您可能需要查看其他完全分布式SCM(想想 Mercurial / Bazaar / Git / ...)支持开箱即用的分布式开发。

您应该尝试 SVK版本控制系统

  

SVK 是一个分散版本控制系统,内置强大的Subversion文件系统。它支持存储库镜像,断开连接操作,历史敏感的合并,并与其他版本控制系统以及流行的可视化合并工具集成。

在此链接上有关于的文字使用SVK同步SVN存储库

如果其中一个存储库完全只读,则可以使用“svnsync”使其与主存储库保持同步。此工具通常与代理支持结合使用,以创建主从设置。

E.g。 Apache这样做是为了将他们的存储库镜像到不同的大陆。主存储库位于美国,但如果我从EU访问存储库,我会得到一个与主服务器一样的本地镜像。

inotify-tools对我很有用,详情请见本网站:

http://planet.admon.org/synchronize-subversion -repositories与 - inotify工具/

如果您需要超出svnsync提供的称为“Subversion MultiSite”的性能和数据安全性,则有一种商业解决方案可提供Subversion存储库的真正主动 - 主动复制(非主 - 从)。

免责声明:我为制作此解决方案的公司工作

VisualSVN服务器的 多站点的储存库复制 设计这种情况。

你可以保持的主存储库在你的主要办公室,并设置多个可写入奴隶库在偏远地区。

这应该工作的透明作为可能为开发商进行开发。可用性是必须的。

  • 之间的复制的奴隶的和主是透明的和自动的,

  • 每个主和从储存库是一个可写的颠复存储库,从用户的角度看,

  • 作出的和可能配置在一对夫妇的点击通过VisualSVN服务器管理器的MMC控制台。

VisualSVNServerManagerConsoleMultisite

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top