Perforce Performce将目录快速同步到干净状态

Perforce Performce将目录快速同步到干净状态,perforce,Perforce,我想要一个不需要强制同步的快速解决方案,它可以将指定的目录置于其原始存储库状态 可以从磁盘中删除相同的文件 可以从磁盘添加相同的文件 某些文件可能会在磁盘上被修改 某些文件可能会在perforce中标记为删除、添加或修改 我所要做的就是确保在运行该命令之后,我不会有任何这些 p4-f sync不是一个选项,我需要一个更快的解决方案,可以最大限度地减少网络使用 万一有人问起,Performe proxy已不再讨论 我知道部分解决方案是: p4 diff-sd-se//clientspec/di

我想要一个不需要强制同步的快速解决方案,它可以将指定的目录置于其原始存储库状态

  • 可以从磁盘中删除相同的文件
  • 可以从磁盘添加相同的文件
  • 某些文件可能会在磁盘上被修改
  • 某些文件可能会在perforce中标记为删除、添加或修改
我所要做的就是确保在运行该命令之后,我不会有任何这些

p4-f sync
不是一个选项,我需要一个更快的解决方案,可以最大限度地减少网络使用

万一有人问起,Performe proxy已不再讨论

我知道部分解决方案是:

p4 diff-sd-se//clientspec/dir/p4-x-还原

问题是,这不会删除添加到上面路径中的文件,这些路径不在perforce中—我希望从磁盘中删除的文件


另外,我需要一个多平台或跨平台的解决方案-它必须在Windows、OS X和Linux上工作。

如果您有Unix/Linux,这可能会工作

在Perforce中,您可以通过p4v(如图所示)或通过命令行(如图所示)来“协调脱机工作”。在恢复编辑和删除的文件时,您已经按照问题中的说明执行了后者。添加的文件更复杂。第二个链接将让您执行以下操作

find . -type f -print | p4 -x - add
find . -type l -print | p4 -x - add
在Unix中添加文件和符号链接的步骤

棘手的部分是从物理上删除您添加的文件。这并不漂亮,但我认为它会起作用。 p4打开| grep add | cut-f1-d“#”| p4-x-其中| cut-f3-d”

那么你需要做一个

p4 revert directory/...

或者在删除文件时执行与上面类似的操作。

对于使用svn的构建服务器,我需要这样做。我最后做的是:

  • 更新工作区
  • 删除旧的“构建文件夹”(如果有)
  • 将工作区复制到“生成文件夹”
  • 在“生成文件夹”中执行生成

这样,我就知道旧版本没有什么悬而未决的了。

另一个Unix/Linux代码段应该删除所有perforce从未跟踪过的文件:


find-键入f | p4-x-files 2>&1 | sed-n-e/-没有这样的文件。//p'| xargs-d'\n'rm

Performce在2014年添加了一个新命令“p4 clean”。1该命令通过将您的工作区重置为其“have”状态,完全满足您的要求:

  • Perforce中不存在的新文件将被删除
  • 在Performce control之外修改的文件将被重置
  • 在Performce control之外删除的文件将被恢复
该命令是“p4协调-w”的别名,并使用文件的哈希和来确定其在工作区中的状态