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

标签 perforce

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

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

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

任何想法都会受到赞赏,我已经在这个问题上绞尽脑汁有一段时间了。

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

最佳答案

有几种方法,但我认为您正在以艰难的方式解决这个问题。

  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 pull,然后移动驱动器,然后从 USB 运行它,或者发出另一个 p4 pull,拉到最终的服务器。从未尝试过此操作,但通过一些工作应该是可能的,您必须通过 USB 运行服务器才能发出最终的 p4 拉取。

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

关于perforce - 如何在两个不同的服务器之间移动 perforce 仓库,以便复制修订历史记录,但不复制用户信息和工作区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238503/

相关文章:

Perforce 命令行选项来填充工作区

perforce - 如何在 perforce CLI 中创建作业并将其附加到新的变更列表?

perforce - 如何在perforce中完全同步两个分支

diff - 了解 P4 描述/差异摘要 (-ds) 选项

Perforce:查找具有给定来源的分支

perforce - 在 Perforce 命令行中,如何区分重新打开以进行添加的文件?

python - 有没有办法查看给定 CL 提交到哪个流

perforce - p4 恢复后删除新文件

windows - 如何从命令行创建一个 perforce 空更改列表

centos - 为什么 perforce 服务器在 centos 上不询问密码?