Perforce 如何在两台不同的服务器之间移动Performce仓库,以便复制修订历史记录,但不复制用户信息和工作区?

Perforce 如何在两台不同的服务器之间移动Performce仓库,以便复制修订历史记录,但不复制用户信息和工作区?,perforce,Perforce,我需要将仓库从一台Perforce服务器复制到另一台服务器。文件修订历史记录需要保持完整,但无法将用户信息和工作区信息复制到新服务器 我尝试了标准的检查点创建和恢复过程,但如果两台服务器上都存在同名的用户或工作区,则源服务器将覆盖目标服务器上的此信息。如果这些用户帐户和工作区没有完全相同的详细信息,这将非常糟糕 此类操作的目标是允许两个独立的、断开连接的组查看具有修订历史记录的版本化源树。更新将是单向的,一组正在开发,一组正在查看。每个小组的网络都是完全封闭的,没有任何形式的外部连接 如果有任何

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

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

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

如果有任何想法,我都会感激的,我已经绞尽脑汁想了一段时间了

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

有几种方法,但我认为这是一种艰难的方法

  • 继续执行您正在执行的操作,但删除db.user、db.view(我认为)和db.group。然后,当您启动Performce server时,它将创建这些,但它们将为空,这将使任何人都难以登录。因此,您必须创建用户/组。我不确定是否可以从另一台服务器上获取这些db文件并将其复制到中,但从未尝试过

  • 更简单的方法是制作一个复制品。确保查看p4d-M标志以确保它是只读副本。我假设您有一个USB驱动器或其他东西可以在网络之间移动,因此您可以只在USB驱动器上执行p4拉动,然后移动驱动器,或者从USB上运行它,或者执行另一个p4拉动,拉动到最终服务器。从未尝试过这一点,但通过一些工作,这应该是可能的,你将不得不运行一个服务器的USB发出最后的p4拉

  • 您可以看看perforce git fusion,并制作一些git克隆


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


    只需确保在一段缓慢的时间内对其进行测试,因为它会降低目标服务器的速度。我在美国东海岸的两个偏远的地方试过,结果都可以接受,但不太有用。如果两个服务器都在同一个建筑中,那就好了。

    你考虑迁移到<代码> Git < /C> >吗?详细解释了具体需要。我看不出建议使用不同的源代码管理工具如何解决这个问题。#2绝对是一个很好的资源,但我在复制服务器(只读或其他)时面临的问题是,用户和工作区信息是不相交的,需要保持这样。IE在此过程中,不应在源上重新创建来自目标的用户配置文件。此外,如果有两个相似的命名用户或工作区,则驻留在目标上的用户配置文件的详细信息不能覆盖源上的用户配置文件。