使用 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 来帮助我解决这个问题。
有什么建议吗?
答案 0 :(得分:7)
您正在查看正确的命令,但可能不是正确的参数。这就是我使用它的方式:
p4 unshelve -s 77655 -b MY_BRANCH_SPEC
取消更改列表77655,使用指定的分支规范将文件映射到新分支。
重要的是,您需要确保指定的分支映射和当前工作空间映射都包含源文件和目标文件,否则您将收到“文件未映射”错误。
答案 1 :(得分:5)
不幸的是,如果没有升级到2013.1并获得改进的不正常操作,您将需要手动复制数据:
p4 edit
您其他流/分支中的文件p4 copy
或p4 integrate
,因为它们未在主干上提交答案 2 :(得分:5)
其他答案对我没有用,这就是我使用perforce 2014所做的:
将View下的映射替换为例如
//depot/product/B1/... //depot/product/B2/...
在命令行中,运行
p4 unshelve -s <SOURCE_CL> -c <TARGET_CL> -b B1_to_B2
答案 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:
这将允许您选择新的和已更改的文件并将其添加到更改集。
答案 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