强制替换库
replace a library in perforce
我需要替换 perforce depot 中的库。该库以源文件的形式签入,这些文件均由 perforce 管理。
现在的问题是在新版本的库中可能存在
- 未更改的文件
- 更改文件
- 新文件和
- 部分文件可能已被删除
当然我可以将整个源代码树标记为删除,提交,将新版本的库复制到有问题的目录,标记为添加并再次提交,但这会在为了不破坏他的下一个构建,没有人应该同步它——也许这是最好的选择,但我想知道是否有更好的方法。
第二种解决方案是将新版本的库复制到其他目录,更新所有引用以反映新位置,然后删除旧库并将新库标记为添加。这可以在一个更改列表中完成。这里令人不愉快且容易出错的部分是更新引用。目录名称的更改也不是真正需要的。
有谁知道使用一个更改列表一步完成此操作的方法吗?我尝试了一个文件示例。实际上 是 可以将文件标记为删除,然后立即创建一个同名文件并将其标记为添加。如果您这样做并提交,那么结果正是我想要的那个单个文件。但是,此过程似乎需要手动接触每个文件。我不知道如何为整个目录或目录树执行此操作。
一种可能性是使用 p4 reconcile
完成大部分工作,使用如下过程:
- 在您的工作区中,完全删除源代码树的当前副本:
rm -rf top-directory-name
(或 del /s /q
,如果您在 Windows)。
- 将库的源代码树的整个新副本复制到该位置。
- 运行
p4 reconcile
并让它找出要打开哪些文件以进行添加、编辑和删除。 仔细 通过仔细查看 p4 opened
、p4 diff
等来检查结果
- 提交新的变更列表。
我需要替换 perforce depot 中的库。该库以源文件的形式签入,这些文件均由 perforce 管理。
现在的问题是在新版本的库中可能存在
- 未更改的文件
- 更改文件
- 新文件和
- 部分文件可能已被删除
当然我可以将整个源代码树标记为删除,提交,将新版本的库复制到有问题的目录,标记为添加并再次提交,但这会在为了不破坏他的下一个构建,没有人应该同步它——也许这是最好的选择,但我想知道是否有更好的方法。
第二种解决方案是将新版本的库复制到其他目录,更新所有引用以反映新位置,然后删除旧库并将新库标记为添加。这可以在一个更改列表中完成。这里令人不愉快且容易出错的部分是更新引用。目录名称的更改也不是真正需要的。
有谁知道使用一个更改列表一步完成此操作的方法吗?我尝试了一个文件示例。实际上 是 可以将文件标记为删除,然后立即创建一个同名文件并将其标记为添加。如果您这样做并提交,那么结果正是我想要的那个单个文件。但是,此过程似乎需要手动接触每个文件。我不知道如何为整个目录或目录树执行此操作。
一种可能性是使用 p4 reconcile
完成大部分工作,使用如下过程:
- 在您的工作区中,完全删除源代码树的当前副本:
rm -rf top-directory-name
(或del /s /q
,如果您在 Windows)。 - 将库的源代码树的整个新副本复制到该位置。
- 运行
p4 reconcile
并让它找出要打开哪些文件以进行添加、编辑和删除。 仔细 通过仔细查看p4 opened
、p4 diff
等来检查结果 - 提交新的变更列表。