我试图将我的depot文件夹内的文件以及它们的修订历史从2015.2导出到2019年的perforce服务器上.另外,我想让perforce在我的新服务器上创建新的用户,对应我原来2015年repo上的commitersubmitter。
Perforce replicate对于我目前的任务来说,看起来像是矫枉过正,然后我在perforce的上看到了这个阅读。网站 提到了P4的zip。
这看起来好像可以解决我的问题,但文章中有几个问题我无法理解。
比方说,我把数据从server1_ip:port --> server2_ip:port
我现在的步骤如下
使用以下方法制作复制文件夹的zip
p4 remote my_remote_spec
,设置 Address: server1_ip:port
DepotMap://depot/... //depot2/...
p4 -p server1_ip:port zip -o test.zip -r my_remote_spec -A //depot/...
. 但在这一步,我得到的权限拒绝错误。这对我来说很奇怪,因为该用户虽然不是超级管理员,但却可以访问我要求压缩的文件。
另外,当我用超级用户尝试时,我找不到test.zip,即使我没有被提示任何错误。
在这一步,我得到权限拒绝错误。这对我来说很奇怪,因为该用户虽然不是超级管理员,但可以访问我要求获得压缩的文件。
这是预期的。
C:\Perforce\test>p4 help zip
zip -- Package a set of files and their history for use by p4 unzip
...
The zip command requires super permission granted by p4 protect.
上述命令不是应该在我运行的目录下生成一个压缩文件吗?
类似于 p4 admin checkpoint
如果你没有指定绝对路径,那么 zip 文件会被写入服务器机器(相对于服务器根目录),而不是传输到本地客户端目录。 这在文档中没有明确说明(这似乎是一个疏忽),但如果你在运行 zip 的服务器根目录中查找,你应该可以找到你的 test.zip
有。
解压命令是否应该在第二台服务器的用户登录p4后运行?
是的,任何时候你对一个特定的服务器运行一个命令,你都需要登录到该服务器。 在 p4 unzip
你至少需要 admin
的权限。
最后,从文档中看,为什么在从运行在1666和1777上的服务器上传输文件时,会提到第三个端口 ,1667。
我很确定那是个错别字,写文章的人一开始用的是1666和1777端口,中途改变了主意,也没有校对。)