version-control - 使用 p4 zip 和 unzip 将文件从一个 perforce 服务器导出到另一个
问题描述
我试图从 2015.2 到 2019 perforce 服务器在我的 depot 文件夹中导出文件及其修订历史记录。此外,我希望 perforce 在我的新服务器上创建新用户,该用户对应于我最初的 2015 回购中的提交者/提交者。
对于我当前的任务,Perforce 复制看起来有点矫枉过正,然后我在 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。
- 上面的命令不是应该在我运行它的目录中生成一个 zip 文件吗?
- 是否应该在第二台服务器的用户 p4 登录后运行 unzip 命令?
- 最后,在从运行在 1666 和 1777 上的服务器传输文件中提到的为什么是第三个端口 1667 的文档中。
解决方案
在这一步我得到权限被拒绝错误。这对我来说很奇怪,因为用户虽然不是超级/管理员可以访问我要求压缩的文件。
这是预期的:
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.
上面的命令不是应该在我运行它的目录中生成一个 zip 文件吗?
与 类似p4 admin checkpoint
,zip 文件被写入服务器计算机(相对于服务器根目录,如果您不指定绝对路径),而不是传输到本地客户端目录。这在文档中没有明确说明(这似乎是一个疏忽),但是如果您查看运行 zip 的服务器的根目录,您应该在test.zip
那里找到您的。
是否应该在第二台服务器的用户 p4 登录后运行 unzip 命令?
是的,每当您对特定服务器运行命令时,您都需要登录到该服务器。在这种情况下,p4 unzip
您至少需要admin
第二台服务器的权限。
最后,在从运行在 1666 和 1777 上的服务器传输文件中提到的为什么是第三个端口 1667 的文档中。
我很确定这是一个错字。写这篇文章的人开始使用端口 1666 和 1777,中途改变了主意,并且没有校对。:)
推荐阅读
- php - PHP中一个多维数组的交集
- java - java中使用for循环的两个名称组合
- python - 如何在 tkinter 中动态构建输入框?
- java - Spring 说一个 bean 已经存在,但是这个 bean 只是被移动到另一个文件夹
- json - 调用初始化程序 SwiftUI 时没有完全匹配
- powerbi - 您不能在 A 和 B 之间创建直接的主动关系,因为这会引入歧义
- c# - Blazor 将 javascript 对象作为参数传递给 IJSRuntime
- r - 如何使用全局设置使数字变量在R中默认保留两位小数?
- c++ - 从 Webview2 (Edge/Chromium) 拦截 Windows 消息
- module - 运行时出错 become=yes 尝试获取 sudo 访问权限