如何在Perforce 2013之前将搁置的变更清单取消搁置到另一个分支机构?

时间:2014-01-06 11:20:16

标签: perforce branching-and-merging unshelve

使用 Perforce Server 2012.2 / 538478 ,如何将文件从主干转移到另一个分支?

尝试时,我得到:

//filename... (not mapped to your workspace view)

在Perforce 2013中,我发现这个unshelve command非常有帮助:

p4 unshelve -s <changlist#-with-shelved-files> -S //depot/streamname

但是对于我目前使用的版本,我找到了 nothing 来帮助我解决这个问题。

有什么建议吗?

7 个答案:

答案 0 :(得分:7)

您正在查看正确的命令,但可能不是正确的参数。这就是我使用它的方式:

p4 unshelve -s 77655 -b MY_BRANCH_SPEC

取消更改列表77655,使用指定的分支规范将文件映射到新分支。

重要的是,您需要确保指定的分支映射和当前工作空间映射都包含源文件和目标文件,否则您将收到“文件未映射”错误。

答案 1 :(得分:5)

不幸的是,如果没有升级到2013.1并获得改进的不正常操作,您将需要手动复制数据:

  • 在主干中取消了解,注意到已更改的特定文件
  • p4 edit您其他流/分支中的文件
  • 手动将未加载的文件复制到其他流/分支(您不能使用p4 copyp4 integrate,因为它们未在主干上提交
  • 在另一个分支上测试并提交

答案 2 :(得分:5)

其他答案对我没有用,这就是我使用perforce 2014所做的:

  1. 编辑您当前的工作区,以便// depot / product / B1 / ...和// depot / product / B2 / ...都映射在其中(不是彼此映射到您的工作区,就像普通映射一样)
  2. 在P4V中,转到&#34; Branch Mappings&#34; (查看菜单 - &gt;分支映射)
  3. Ctrl + N开始新的映射(或右键单击列表并选择&#34; New Branch Mapping ...&#34;)
  4. &#34;分支映射&#34;提供类似B1_TO_B2
  5. 的名称
  6. 将View下的映射替换为例如

    //depot/product/B1/...       //depot/product/B2/...  
    
  7. 确定
  8. 创建一个空的更改列表,其中将放置您的未保留文件(否则它们将转到&#34;默认&#34;更改列表)。这个新的变更清单的数量将是&lt; TARGET_CL&gt;在下面的命令中。
  9. 在命令行中,运行

    p4 unshelve -s <SOURCE_CL> -c <TARGET_CL> -b B1_to_B2
    
    • 如果它不起作用,请确保在.p4config
    • 中设置了正确的工作区。
  10. 现在你所要做的就是解决&lt;中的文件。 TARGET_CL&gt;

答案 3 :(得分:3)

在花了一些时间进行搜索和阅读之后,我还没有找到一个具体的例子,可以将搁置的变更列表放到另一个分支上。最后我总结了一个具体的例子。

Assuming you have a shelved changelist 324426 in Branch B1 and want to unshelve it to Branch B2.

我能够创建分支规范,然后将更改列表取消搁置到另一个分支。 这正是我所做的:

1. Create a text file named branchSpec.txt, with the content below: set you own Branch name and View.

Branch:   B1_to_B2

View:
//depot/dev/main/B1/...       //depot/release/B2/...

2. p4 branch -i < branchSpec.txt
3. p4 unshelve -s 324426 -b B1_to_B2

Viola,B1中的变更清单324426中的搁置文件现在已经取消B2的保留并准备提交。

答案 4 :(得分:0)

我认为你真正需要的是&#34; p4 move -f&#34;。这里详细解释:p4 move -f: What It's For

答案 5 :(得分:0)

如何解决这个问题的方法是在P4 2012:

  1. 使用主干
  2. 手动复制并覆盖分支
  3. 右键单击P4客户端中的分支,然后单击“协调脱机工作...”
  4. 这将允许您选择新的和已更改的文件并将其添加到更改集。

答案 6 :(得分:0)

您可以为此使用P4搁置,但是您必须创建一个分支映射,即A_to_B。

1] rtrim()

2] p4 unshelve -s CL_NUM -b A_to_B

3] p4 add (files opened for add)

注意:请不要忘记步骤2。默认情况下,P4不要在目标分支中打开它们。您可以使用p4 resolve

确认