【发布时间】:2009-03-03 07:32:41
【问题描述】:
是否可以使用相同的工作副本并将其放入两个不同的 SVN 服务器(提交、更新、...)?
【问题讨论】:
-
好问题,+1,您会惊讶于有多少人出于某种原因必须这样做。
标签: svn
是否可以使用相同的工作副本并将其放入两个不同的 SVN 服务器(提交、更新、...)?
【问题讨论】:
标签: svn
是的,您可以使用 Relocate(谢谢,Peter)命令将您的工作副本与第一个存储库连接,在那里提交,然后重新定位到第二个存储库并在那里提交。最好先在其他地方复制您的工作副本文件夹。
【讨论】:
如果多个人会与不同的 svn 服务器通话,你会遇到麻烦。两台服务器不会相互通信以确保它们没有冲突,使用相同的修订号等。至少,我不知道有任何 svn hack 可以做到这一点。 (还有其他基于svn的分布式版本系统,如svk。)
这里的核心目标是什么?您能否只推送到单个服务器,然后有一个提交后挂钩将更改复制到另一台服务器,这将允许从其他位置轻松进行只读访问?
您可以提供的有关您想做的事情的详细信息越多,我们就越有可能为您提供帮助。
【讨论】:
分布式版本控制系统,例如 Mercurial、Bazaar 或 Git,更适合此类任务。您可以在任意数量的存储库中推送您的更改。
【讨论】:
这是可能的,但非常糟糕。我目前必须这样做,因为我的 ISP 已经脑残,而且我在到达欧洲的各个数据中心时遇到了难题。所以,我推送到我在加拿大的服务器,该服务器立即推送到真正的存储库。
实际上有两次,我最终得到了不同的修订号 (+1),这意味着我的下一个 svn up 变得非常有趣。
所以,我只是使用 SSHFS(一个 FUSE 挂载)来编辑加拿大副本上的文件,然后直接提交。它仍然是一个真正的痛苦,也是我如此喜欢 Mercurial 的众多原因之一。
【讨论】:
首先,将您的代码签出到每个服务器,然后制作一个脚本 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
【讨论】: