Perforce 到 Plastic SCM 的迁移脚本

标签 migration perforce plasticscm

是否存在用于从 Perforce 简单迁移到 Plastic SCM 并具有完整历史记录的工具/脚本?

或者perforce => git => Plasticscm?

最佳答案

是的,有一种方法可以以双向方式完成此操作,并且无需 Git 跳转。它是使用“cmsync p4”命令完成的,我们称之为P4Sync

首先,您需要使用“完整安装程序(UDT + P4Sync)”安装程序,网址为 https://www.plasticscm.com/download/5.4.16.779

该安装程序包含 P4 Sync 命令,其格式为:

cm synchronize br:/main@MyRepoName@plastic-server:8087 p4 p4Server:1666 //myDepot/path --user=p4user --pwd=p4password

您可以使用“--excluded=excludeFilePath”参数来定位包含要在迁移过程中忽略的 P4 库路径规则的配置文件。

举个例子,如果您想同步“//depot/stream”P4 depot 路径,但对迁移“//depot/stream/subdirtoexclude”子目录不感兴趣,那么配置文件必须具有“/subdirtoexclude”是为了忽略它而编写的,您可以看到它是根同步路径的相对路径。

我建议您使用一个可选参数,它是“--tmpwkpath”,用它来指定下载 p4 仓库文件的临时 p4 工作区的自定义路径,我通常使用:“--tmpwkpath=c:\p4wks”,它为长路径名提供了足够的空间,并且可以避免过度填充 Windows tmp 目录(这将影响命令性能)。不要忘记使用它。

同步是如何工作的?非常简单,它会从 P4 中缺少的变更列表中进行搜索以导入到 Plastic SCM 中,反之亦然,它将搜索要导入的缺少的 Plastic SCM 变更集进入P4,如果发现新内容就会同步。使用相同的命令来双向同步数据,您不需要更改命令从 P4 拉取或从 Plastic 拉取,一切都是同时完成的。但请注意,如果在 P4 路径和 Plastic/main 分支上进行并行更改,那么您需要首先拉取 P4 更改,使用合并操作解决冲突(合并将自动创建的子分支)并然后将更改推送回 P4。

第一次运行该命令时,给定仓库路径的所有 P4 历史记录都将迁移到空的 Plastic SCM 存储库中。第一个 p4 变更列表通常是最难的,因为最初可能添加了大量 Assets 。

sync 命令会定期更新正在发生的情况,您可以启用“cm.log.conf”调试日志文件 ( https://www.plastics...scm-part-i.html ) 以启用完整的命令执行日志。

如果您有任何疑问,请写信给我们[email protected] .

关于Perforce 到 Plastic SCM 的迁移脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39746228/

相关文章:

ruby-on-rails - Rails 迁移顺序和 Git

ruby-on-rails - 为has_many 和belongs_to 创建Rails 模型关联

javascript - TypeScript 可以与现有的 JavaScript 代码一起使用吗?

batch-file - 如何将 Perforce 同步命令的输出发送到文本文件

Perforce:创建一个处于保留状态的包

unreal-engine4 - 将 PlasticSCM 与虚幻引擎 4 结合使用

.net - Plastic SCM 是用什么写的?

ruby-on-rails-3 - Rails 在迁移中预填充表

perforce - p4 merge 接受他们的但实际上进行合并

ssl-certificate - 为什么 Plastic SCM 不断询问我是否信任复制服务器的证书?