2

我需要将软件仓库从一台 Perforce 服务器复制到另一台。文件修订历史需要完整,但不能将用户信息和工作区信息复制到新服务器。

我尝试了标准检查点创建和恢复过程,但如果两台服务器上都存在同名的用户或工作区,源服务器将覆盖目标服务器上的此信息。如果这些用户帐户和工作区没有完全相同的详细信息,这将非常糟糕。

此类操作的目标是允许两个独立的、断开连接的组查看带有修订历史的版本化源树。更新将是单向的,一组正在开发,一组只是查看。每个小组的网络都是完全封闭的,没有任何形式的外部联系。

任何想法都将不胜感激,我已经在这个问题上绞尽脑汁了一段时间。

编辑:最终我的解决方案是在与我的源服务器相同的机器上安装一个中间 Perforce 服务器。使用它,我可以从源服务器到中间服务器进行标准备份/恢复,然后在从中间服务器备份到最终目标服务器之前删除中间服务器中所有不需要的元数据。相当复杂,但它完成了工作,并且可以在 Windows Power Shell 中以编程方式完成。

4

2 回答 2

1

有几种方法,但我认为你正在努力解决这个问题。

  1. 继续做你正在做的事情,但删除 db.user、db.view(我认为)和 db.group。然后,当您启动 perforce 服务器时,它将创建这些,但它们将是空的,这将使任何人都难以登录。因此您必须创建用户/组。我不确定您是否可以从另一台服务器获取这些数据库文件并将它们复制进去,从未尝试过。

  2. 更简单的方法,制作副本。http://www.perforce.com/perforce/r10.2/manuals/p4sag/10_replication.html确保查看 p4d -M 标志以确保它是只读副本。我假设您有一个 USB 驱动器或要在网络之间移动的东西,所以您可以只在 USB 驱动器上发出 p4 拉动,然后移动驱动器,然后从 USB 上运行它,或者发出另一个 p4 拉动,拉到最后服务器。从未尝试过,但通过一些工作应该是可能的,您必须从 USB 运行服务器才能发出最终的 p4 拉动。

  3. 你可以看看 perforce git fusion,并制作一些 git 克隆。

于 2012-11-05T19:57:49.277 回答
1

您还可以查看远程仓库。基本上,您在目标服务器上创建一个新的软件仓库,并将其指向您的源服务器上的软件仓库。如果您在两台服务器之间有快速连接,则此方法有效。保护由目标服务器处理,关于谁有权访问该新仓库。可以将源服务器设置为以只读方式将其共享给目标服务器。这是一些信息

http://answers.perforce.com/articles/KB_Article/Creating-A-Remote-Depot

只需确保在缓慢的时间内对其进行测试,因为它会降低目标服务器的速度。我在美国东海岸的 2 个偏远地区尝试了它,它是可以接受的,但不是太有用。如果两台服务器都在同一栋楼里,那就没问题了。

于 2014-12-05T13:39:36.060 回答