强制替换库

replace a library in perforce

我需要替换 perforce depot 中的库。该库以源文件的形式签入,这些文件均由 perforce 管理。

现在的问题是在新版本的库中可能存在

当然我可以将整个源代码树标记为删除,提交,将新版本的库复制到有问题的目录,标记为添加并再次提交,但这会在为了不破坏他的下一个构建,没有人应该同步它——也许这是最好的选择,但我想知道是否有更好的方法。

第二种解决方案是将新版本的库复制到其他目录,更新所有引用以反映新位置,然后删除旧库并将新库标记为添加。这可以在一个更改列表中完成。这里令人不愉快且容易出错的部分是更新引用。目录名称的更改也不是真正需要的。

有谁知道使用一个更改列表一步完成此操作的方法吗?我尝试了一个文件示例。实际上 可以将文件标记为删除,然后立即创建一个同名文件并将其标记为添加。如果您这样做并提交,那么结果正是我想要的那个单个文件。但是,此过程似乎需要手动接触每个文件。我不知道如何为整个目录或目录树执行此操作。

一种可能性是使用 p4 reconcile 完成大部分工作,使用如下过程:

  1. 在您的工作区中,完全删除源代码树的当前副本:rm -rf top-directory-name(或 del /s /q,如果您在 Windows)。
  2. 将库的源代码树的整个新副本复制到该位置。
  3. 运行 p4 reconcile 并让它找出要打开哪些文件以进行添加、编辑和删除。 仔细 通过仔细查看 p4 openedp4 diff 等来检查结果
  4. 提交新的变更列表。