具有2个SVN服务器的代码的相同工作副本

时间:2009-03-03 07:32:41

标签: svn

是否可以使用相同的工作副本并将其放入两个不同的SVN服务器(提交,更新,...)?

6 个答案:

答案 0 :(得分:3)

是的,您可以使用Relocate(thanks,Peter)命令将您的工作副本与第一个存储库连接,在那里提交,然后重新定位到第二个存储库并在那里提交。最好先将工作副本文件夹复制到其他地方。

答案 1 :(得分:3)

答案 2 :(得分:1)

如果有多个人在与不同的svn服务器通话,那么你就会遇到麻烦。两个服务器不会互相通信,以确保它们没有冲突,使用相同的修订号等。至少,我不知道任何svn黑客会这样做。 (还有其他基于svn的分布式版本系统,例如svk。)

这里的核心目标是什么?您是否只能推送到单个服务器,但是然后有一个提交后挂钩将更改复制到另一个服务器,这将允许从其他位置轻松进行只读访问?

您可以提供的有关您想要做的事情的详细信息越多,我们就越有可能为您提供帮助。

答案 3 :(得分:1)

分布式版本控制系统(如Mercurial,Bazaar或Git)更适合此类任务。您可以推送更改任意数量的存储库。

答案 4 :(得分:1)

它可能但非常可怕。我目前必须这样做,因为我的ISP脑子已经死了,而且我遇到了很难到达欧洲各种数据中心的问题。所以,我推送到加拿大的服务器,立即推送到真正的存储库。

有两次,我实际上最终得到了一个不同的修订号(+1),这意味着我的下一个svn变得非常有趣。

所以,我只使用SSHFS(一个FUSE挂载)编辑加拿大副本上的文件,然后直接提交。它仍然是一个真正的痛苦,也是我非常喜欢Mercurial的众多原因之一。

答案 5 :(得分:0)

首先,检查每个服务器的代码,之后生成一个脚本svn_up.sh,如下所示:

ssh  server_one_ip_address svn up /path_to_working_copy_on_server1
ssh  server_two_ip_address svn up /path_to_working_copy_on_server2

使用sh svn_up.sh而不是svn up