Perforce 实际上,是否可以从一个变更列表中减去另一个变更列表的变更?

Perforce 实际上,是否可以从一个变更列表中减去另一个变更列表的变更?,perforce,p4v,changelist,Perforce,P4v,Changelist,假设我有两个变更列表A和B(位于A的顶部)。 现在,我只想要在B中完成的更改,而不是包含在A中的更改,即B-A 可以这样做吗?可以。做: p4 undo @A,A p4 sync @B 这将创建一个新的挂起变更列表,即“B减去a”。如果A和B接触到同一个文件,同步到@B将需要解析以将B的更改合并到文件中(没有A的更改)。合并将以这样一种方式进行设置,使一切尽可能自动发生 如果以后对同一个文件有其他更改,您将需要sync和resolve这些更改,就像处理旧的更改列表时一样 从理论上讲,这在P4V

假设我有两个变更列表A和B(位于A的顶部)。
现在,我只想要在B中完成的更改,而不是包含在A中的更改,即B-A
可以这样做吗?

可以。做:

p4 undo @A,A
p4 sync @B
这将创建一个新的挂起变更列表,即“B减去a”。如果A和B接触到同一个文件,同步到
@B
将需要解析以将B的更改合并到文件中(没有A的更改)。合并将以这样一种方式进行设置,使一切尽可能自动发生

如果以后对同一个文件有其他更改,您将需要
sync
resolve
这些更改,就像处理旧的更改列表时一样

从理论上讲,这在P4V中也是可行的(我认为这是“退出”命令),但我在这方面有过不好的经验,因此不推荐使用它。从命令行来看,这非常简单


例子 变更A为@136,变更B为@137

C:\Perforce\test\undo>p4 undo @136,136
//stream/main/undo/foo#2 - opened for integrate
... undid //stream/main/undo/foo#2

C:\Perforce\test\undo>p4 sync @137
//stream/main/undo/foo#3 - is opened and not being changed
... //stream/main/undo/foo - must resolve #3 before submitting

C:\Perforce\test\undo>p4 resolve -am
c:\Perforce\test\undo\foo - merging //stream/main/undo/foo#3
Diff chunks: 1 yours + 1 theirs + 0 both + 0 conflicting
//compy386/undo/foo - merge from //stream/main/undo/foo

C:\Perforce\test\undo>p4 submit -d "undid A"
Submitting change 138.
Locking 1 files ...
integrate //stream/main/undo/foo#4
Change 138 submitted.
更改136现在已由更改138撤消:

C:\Perforce\test\undo>p4 annotate -c foo
//stream/main/undo/foo#4 - integrate change 138 (text)
135: this
138: is
135: a
137: test  **CHANGE B**
135: file

C:\Perforce\test\undo>p4 filelog foo
//stream/main/undo/foo
... #4 change 138 integrate on 2020/02/08 by Samwise@compy386 (text) 'undid A'
... ... undid //stream/main/undo/foo#2
... #3 change 137 edit on 2020/02/08 by Samwise@compy386 (text) 'change B'
... #2 change 136 edit on 2020/02/08 by Samwise@compy386 (text) 'change A'
... ... undone by //stream/main/undo/foo#4
... #1 change 135 add on 2020/02/08 by Samwise@compy386 (text) 'test file'
C:\Perforce\test\undo>p4 annotate -c foo
//stream/main/undo/foo#4 - integrate change 138 (text)
135: this
138: is
135: a
137: test  **CHANGE B**
135: file

C:\Perforce\test\undo>p4 filelog foo
//stream/main/undo/foo
... #4 change 138 integrate on 2020/02/08 by Samwise@compy386 (text) 'undid A'
... ... undid //stream/main/undo/foo#2
... #3 change 137 edit on 2020/02/08 by Samwise@compy386 (text) 'change B'
... #2 change 136 edit on 2020/02/08 by Samwise@compy386 (text) 'change A'
... ... undone by //stream/main/undo/foo#4
... #1 change 135 add on 2020/02/08 by Samwise@compy386 (text) 'test file'