【问题标题】:Server-side copy/move of a Perforce folder - without local sync of filesPerforce 文件夹的服务器端复制/移动 - 没有本地文件同步
【发布时间】:2012-04-23 03:04:40
【问题描述】:

在我目前正在进行的项目中,我们在 /branches 和 /tags 文件夹中有很多文件夹(从 Subversion 迁移到 Perforce 后留下的)。

我想清理混乱 - 我想远程移动/复制/重命名文件夹,直接在仓库上,而不是在本地获取它们。我无法在本地获取它们,因为我们正在谈论数百 GB 甚至数百万个文件 - 数十个分支 x ~5GB。

是否可以命令 Perforce 仅在服务器上移动文件夹?

(我无法直接访问 Perforce 机器,我无法在服务器上移动文件夹或更新 Perforce 数据库)。

【问题讨论】:

  • 对于这么大的仓库,您可能需要发送电子邮件至Perforce Support。如果您还没有使用过它们,那么 Perforce 的支持有点传奇。比您可能习惯的技术支持要好得多。

标签: version-control perforce depot


【解决方案1】:

p4 copy -v 允许您复制软件仓库中的文件,而无需将这些文件同步到您的工作区。 (有关详细信息,请参阅copy reference。)

p4 delete -v 允许您删除软件仓库中未同步到工作区的文件。 (有关详细信息,请参阅delete referenceKB Article #1148。)

另外,p4 move -k 允许您在软件仓库中移动文件而不在本地移动它们,但如果您没有将它们同步到您的工作区,我不确定这是否适用。 (有关详细信息,请参阅move reference。)

您还可以使用copy 后跟delete 来完成移动。

【讨论】:

  • 太棒了。我在检查命令行选项时错过了选项 - 大概是因为我的大脑现在已经硬连线到除了 -v 是“详细”或“版本”:) 我今天要测试。
  • p4 move -k 实际上并不能满足我的需要:( p4 delete -v 说:路径''不在客户端'//myworkspace'下。所以这里也没有运气。p4复制-v 主要按照所说的进行,它会创建一个您必须提交的更改列表。不过,对于他们应该做的事情来说,这些操作感觉很繁重(在大多数 SCM 中,这些类型的操作只是更改指针/链接/类似)。
【解决方案2】:

认为您可以构建一个工作区来映射所有相关文件。你可以运行sync -k 让 Perforce 认为你在本地拥有这些文件。然后你可以运行move -k来移动服务器上的文件。

仅供参考,p4 copy 创建一个新分支,而p4 move 将现有分支移动到新位置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2016-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多