我需要将一个库从一个Perforce服务器复制到另一个服务器。文件修订历史记录必须完整,但无法将用户信息和工作区信息复制到新服务器。
我已尝试过标准检查点创建和还原过程,但如果两台服务器上都存在具有相同名称的用户或工作区,则源服务器将覆盖目标服务器上的此信息。如果这些用户帐户和工作区没有完全相同的细节,那就太糟糕了。
此类操作的目标是允许两个单独的断开连接的组查看具有修订历史记录的版本化源树。更新将是单向的,一组开发,一组只是查看。每个组的网络都是完全封闭的,没有任何外部连接。
任何想法都会受到赞赏,我已经在这一段时间里绞尽脑汁。
编辑: 最终我的解决方案是在与我的源服务器相同的机器上安装中间Perforce服务器。使用它我可以从源服务器到中间服务器执行标准备份/恢复,然后在从中间服务器备份到最终目标服务器之前删除中间服务器中的所有不需要的元数据。相当复杂,但它完成了工作,它可以在Windows Power Shell中以编程方式完成。
答案 0 :(得分:1)
有几种方法,但我认为你正在努力解决这个问题。
继续执行您正在执行的操作,但删除db.user,db.view(我认为)和db.group。然后当你启动perforce服务器时,它会创建这些服务器,但它们将是空的,这将使任何人都难以登录。所以你必须创建用户/组。我不确定你是否可以从其他服务器获取这些db文件并将其复制进来,从未尝试过。
更简单的方法,制作副本。 http://www.perforce.com/perforce/r10.2/manuals/p4sag/10_replication.html确保查看p4d -M标志以确保它是只读副本。我假设你有一个USB驱动器或什么东西可以在网络之间移动,所以你可以发出一个p4拉到USB驱动器,然后移动驱动器,然后从USB运行它,或发出另一个p4拉,拉到最后服务器。从来没有试过这个,但是通过一些工作它应该是可能的,你必须从USB运行服务器才能发出最后的p4拉。
你可以看看perforce git fusion,并制作一些git克隆。
答案 1 :(得分:1)
您还可以查看远程仓库。基本上,您在目标服务器上创建一个新的软件仓库,并将其指向源服务器上的软件仓库。如果两台服务器之间有快速连接,则此方法有效。目标服务器处理保护,以确定谁有权访问该新软件仓库。源服务器可以设置为以只读方式共享给目标服务器。这是一些信息
http://answers.perforce.com/articles/KB_Article/Creating-A-Remote-Depot
请确保在缓慢的时间内对其进行测试,因为它可能会降低目标服务器的速度。我在美国东海岸的两个偏远地区试过它,这是可以接受的,但不是太有用。如果两个服务器都在同一个建筑物中,那就没关系了。