我可以将签出的文件集成到perforce上的不同分支中

use*_*703 10 perforce integrate

我们正在开发一个设计,为此我们在主分支中创建了类的骨架.现在,我们开始编码,为此我们得到了一个新的分支.因此,如果我可以将主分支中的所有新文件移动到新分支中,那将是很好的.但是,我还不能检查它们.那么,是否可以整合检出的变更清单?谢谢.

bk1*_*k1e 10

Perforce支持网站解释了如何执行此操作:Perforce知识库:分支工作正在进行中.如果它是一个不需要运行八个不同命令的单一步骤,那就更好了.

  • 让我感到惊讶的是,当g4相当于"git rebase"是15个命令时,git因"难以使用"而变得惹眼. (2认同)
  • 也就是说,未来的搜索者应该在p4 2013+中查看p4搁置的-b和-S选项,这些选项允许您将搁置的更改列表与另一个分支进行折旧. (2认同)

Gar*_*ees 6

自2013.1版发布以来,分支工作的方式是shelve工作及其unshelve在分支上的工作.详细地:

  1. 搁置你的杰出变化:

    $ p4 shelve ...
    Change 182535 created with 10 open file(s).
    Shelving files for change 182535.
    edit //info.ravenbrook.com/project/mps/master/code/arenavm.c#26
    # etc.
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在分支上取消搁置它们(使用-b选项,它通过分支规范映射文件名):

    $ p4 unshelve -b mps/branch/2013-06-05/diag -s 182535
    ... //info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - must resolve //info.ravenbrook.com/project/mps/master/code/arenavm.c@=182535 before submitting
    # etc.
    
    Run Code Online (Sandbox Code Playgroud)
  3. 解决由此产生的任何合并unshelve,使用p4 resolve -as快速执行"安全" 合并,然后p4 resolve像往常一样完成剩下的工作.

    $ p4 resolve -as
    //gdr-peewit/info.ravenbrook.com/project/mps/branch/2013-06-05/diag/code/arenavm.c - copy from //info.ravenbrook.com/project/mps/master/code/arenavm.c
    # etc.
    $ p4 resolve
    No file(s) to resolve.
    
    Run Code Online (Sandbox Code Playgroud)

(示例输出来自我刚刚运行的实际用例.)


Her*_*rms 0

我从未找到一种方法可以强制执行此操作,但您至少可以部分自动化它。

通常,当我必须做类似的事情时,我会检查我想要将内容移动到的分支中的文件,然后使用WinMerge来区分分支并将更改复制过来。完成后,您可以恢复原始分支中的更改并将其签入新分支中。

这不是最好的解决方案(没有自动签出/添加/删除新分支上的文件),但这是我想出的最快的方法。