【问题标题】:In perforce, is it possible to subtract the changes of one changelist from another?实际上,是否可以从另一个更改列表中减去一个更改列表的更改?
【发布时间】:2020-02-08 10:02:39
【问题描述】:

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

【问题讨论】:

    标签: perforce p4v changelist


    【解决方案1】:

    是的。做:

    p4 undo @A,A
    p4 sync @B
    

    这将创建一个“B 减 A”的新待处理更改列表。如果 A 和 B 接触了相同的文件,同步到 @B 将需要将 B 的更改合并到文件中(没有 A 的更改)。合并将被设置为使一切尽可能自动发生。

    如果以后对同一文件有其他更改,您将需要 syncresolve ,就像您在处理旧更改列表时一样。

    理论上这在 P4V 中也是可行的(我认为这是“退出”命令),但我对此有过不好的体验,不建议这样做。从命令行非常简单。


    示例

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

    变化 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'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-29
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      相关资源
      最近更新 更多