目前,我们在远程位置拥有一个主SVN存储库。提交和更新更改需要一段时间。
是否可以设置本地Git存储库和远程Git存储库,以便对其中一个存储库的提交自动与另一个存储库同步?这意味着由于服务器是本地的,提交/更新不会花费很长时间,但我们仍然会从远程位置进行更改,反之亦然。
有没有人设置过这个问题,是否会出现同时向两个存储库提交并且两个无法同步的问题?
注意:这类似于Does GIT support master/slave concept like SVN?,但对于该问题,只有一个存储库会收到提交。
由于
答案 0 :(得分:1)
首先,Apache Subversion支持write-through proxying,它可以帮助您部署SVN存储库的本地只读副本。此类存储库副本应该可以帮助您提高所有读取Subversion操作的性能(例如svn checkout
,svn update
,svn log
等)。写操作(svn commit
,svn import
等)仍将转到远程存储库。但不幸的是,直写代理解决方案很难设置,维护负担并且有一些缺点。
第二,如果您的Subversion服务器是VisualSVN Server,那么您可以使用没有所有直写代理问题的Multisite Repository Replication (VDFS) feature,并且速度通常快10倍以上。 VDFS是为解决使用Subversion的分布式团队的WAN瓶颈而开发的,所以我想它应该对您的特定情况有所帮助。
在直写代理解决方案和VDFS之间进行选择时,我们VisualSVN团队肯定会确信VDFS是最终的赢家。 VDFS实际赢得了许多点。 VDFS的首要好处是Subversion用户在访问Subversion存储库时会注意到巨大的性能提升,但他们甚至不会注意到部署了任何特殊系统。对于用户来说,VDFS是100%透明的(我不敢说)。
与直写代理相比,VDFS
复制用户访问权限,
复制修改后的修订版属性,
完全支持锁定(即它确实支持锁定 - 修改 - 解锁版本控制模型所需的svn lock
,svn unlock
),
支持高级身份验证机制,例如集成Windows身份验证(即Active Directory单点登录)。
我想要注意多站点存储库复制功能is not available in VisualSVN Server Standard Edition (free)。该功能要求使用该功能在所有服务器实例上安装Enterprise Edition许可证(付费)。