为什么“-Di”不是 'p4 integrate' 的默认值?
Why is '-Di' not the default for a 'p4 integrate'?
想象一下以下场景:我们有两个 perforce 管理的目录:trunk 和 branch。
- File1添加到branch,然后集成到trunk
- File1 在分支上重命名为 File2
- 一个新的 File1 被添加到分支
在这种情况下,从分支到主干的默认集成将不包含 File1,直到提交集成,然后第二个集成将获取更改。
这个问题可以通过使用 -Di 选项进行集成来避免。我的问题是:为什么这个选项不是默认的?它会导致其他地方出现问题吗?
是的。 -Di 可能有问题的一个很好的例子是在 trunk and/or 分支上编辑 File1 的情况。
假设旧的File1包含"A",trunk/File1是"AB",branch/File2是"AC"。假设新的 File1 是 "D".
branch/File1: D
branch/File2: AC
trunk/File1: AB
如果您进行默认整合,您首先将 branch/File2 与 trunk/File1 合并,这两者都会合并内容(生成 "ABC"),然后将 trunk/File1 移动到trunk/File2。后续将分支 branch/File1 整合到 trunk 上现在空出的位置,所以 trunk/File1 变成 "D"。这是理想的结果。
如果您使用 -Di 进行集成,则分支 branch/File2 到 trunk/File2,为您提供内容为 "AC" 的 trunk/File2,然后进行无基础合并在 branch/File1 和 trunk/File1 之间,一侧为 "AB",另一侧为 "D"。
所以总而言之,使用默认值(两步积分)你会得到:
trunk/File1: D (branch)
trunk/File2: AB+AC=ABC (clean merge)
使用 -Di(一步无基础集成)你得到:
trunk/File1: D+AB=??? (baseless merge)
trunk/File2: AC (branch)
理论上你可以通过解决冲突来解决这个问题,手动选择历史记录,注意 B 更改应该在另一个文件中,然后手动将其编辑到 File2 中。当集成到其他分支时,您可能最终不得不重复这种性能(现在由于 File2 和 File1 之间的连接不那么明显而变得复杂)。
想象一下以下场景:我们有两个 perforce 管理的目录:trunk 和 branch。
- File1添加到branch,然后集成到trunk
- File1 在分支上重命名为 File2
- 一个新的 File1 被添加到分支
在这种情况下,从分支到主干的默认集成将不包含 File1,直到提交集成,然后第二个集成将获取更改。
这个问题可以通过使用 -Di 选项进行集成来避免。我的问题是:为什么这个选项不是默认的?它会导致其他地方出现问题吗?
是的。 -Di 可能有问题的一个很好的例子是在 trunk and/or 分支上编辑 File1 的情况。
假设旧的File1包含"A",trunk/File1是"AB",branch/File2是"AC"。假设新的 File1 是 "D".
branch/File1: D
branch/File2: AC
trunk/File1: AB
如果您进行默认整合,您首先将 branch/File2 与 trunk/File1 合并,这两者都会合并内容(生成 "ABC"),然后将 trunk/File1 移动到trunk/File2。后续将分支 branch/File1 整合到 trunk 上现在空出的位置,所以 trunk/File1 变成 "D"。这是理想的结果。
如果您使用 -Di 进行集成,则分支 branch/File2 到 trunk/File2,为您提供内容为 "AC" 的 trunk/File2,然后进行无基础合并在 branch/File1 和 trunk/File1 之间,一侧为 "AB",另一侧为 "D"。
所以总而言之,使用默认值(两步积分)你会得到:
trunk/File1: D (branch)
trunk/File2: AB+AC=ABC (clean merge)
使用 -Di(一步无基础集成)你得到:
trunk/File1: D+AB=??? (baseless merge)
trunk/File2: AC (branch)
理论上你可以通过解决冲突来解决这个问题,手动选择历史记录,注意 B 更改应该在另一个文件中,然后手动将其编辑到 File2 中。当集成到其他分支时,您可能最终不得不重复这种性能(现在由于 File2 和 File1 之间的连接不那么明显而变得复杂)。