我有一个大背景的小问题。让我问一个简短的版本,然后稍微扩展一下。
我的问题的简短版本如下。
想象一种情况 - 你有一个分支 A,其变更列表为 1000 到 1004。然后你从变更列表 1004 创建分支 B 并添加几个修订版(1005、1006)。之后,您需要从分支 B 中删除 changelist 1002 引入的增量。我该怎么做?如果我在分支 A 上需要它 - 没问题,只需回滚到 1001 并重新集成 1003-1004。但是我需要删除一个在其历史中没有此更改列表的分支上的更改列表引入的增量。那么我该怎么做这个“选择性删除”呢?
我的问题的歌词背景如下。早在我还是 ClearCase 工程师的时候,我有时会使用一种称为“减法合并”的功能。我调用了“合并”命令,指出了 2 个版本来识别一个增量和一个类似“删除”的标志(这是几年前的事情,我忘记了确切的标志)。它所做的是它删除了指出的 delta,而不管该 delta 何时实际引入 - 1 次提交或一年前。所以这是一个减法合并,可以用作回滚而不删除任何版本,有点“切掉”一些增量。
现在我使用 Perforce,我可以看到“回滚”命令,它允许创建一个更改列表,将“现在”的增量删除回我指定的更改列表。当您需要删除一些增量时,这就是 Perforce 知识库建议的方式。如果您需要删除一系列更改列表,您需要将整个更改列表的堆栈从“现在”回滚回前一个更改列表,然后将除您想要丢弃的更改列表之外的所有内容集成回来。所以 - 删除 N 个更改列表,然后整合回 N-1 个更改列表。我不知道......这对我来说似乎是一个开销。
所以我问有经验的Perforce用户,你知道如何在Perforce中做“减法积分”吗?
先感谢您。