2012-02-16 54 views
22

我想知道是否有任何方法将在/ main /上创建编辑的Changelist移动​​到分支/ dev /分支上?Perforce - 将搁置的更改列表从主要移动到分支?

我有六个这样的变更列表中有很多文件。我搁置了所有文件,并希望将它们移动到分支以继续在那里工作。如果可能,我宁愿直接在P4V中执行此操作。

我使用P4V 2011.1与2010.2 P4服务器。

+0

相关问题:http://stackoverflow.com/questions/300160/can-i-integrate-checked-out-files-into-一,不同的分支上,Perforce公司。 – gdw2 2013-02-19 19:58:19

回答

1

我相信你可以右键点击一个已编辑的文件并选择Rename/Move...

如果这不起作用,您可能必须使用命令行并执行p4 move -f old_file new_file并移至其他分支。

注意:对于它的价值,这适用于分支,但不适用于流。

+1

不幸的是,当我尝试将文件移动到分支用这种方法,我得到一个“已存在于库”的错误。 – 2012-02-16 19:39:23

+0

@MartinSchulze,这就是我所害怕的。在命令行中,这是'-f'进来的地方,但不知道在p4v中是否有办法做到这一点。 – Chance 2012-02-16 19:59:41

0

我还没有尝试过这个自己,但我想这应该是可能的:

  1. 你的客户转到包含映射目标分支
  2. 选择待定变更表和取消搁置其工作区(或呼叫p4 unshelve -s <number>从命令行

从P4手册:

A successful unshelve operation places the shelved files on the user's 
workspace with the same open action and pending integration history as 
if it had originated from that user and client. 
+2

不幸的是搁置文件是针对软件仓库路径存储的,而不是工作区路径。因此,即使您使用不同的分支切换到新的工作空间,当您取消搁置时,P4也会尝试检出针对main的文件。 – 2012-05-18 15:24:28

-1
  1. 提交上/main/
  2. 变更表集成到/dev/branch/
  3. 回滚或回退对/main/

这允许您解决冲突,如果有任何变更列表。 缺点是退出/main/更改列表,这不是很漂亮。

+0

如果你回去上主要的变化,也不会扭转这种整合的历史?也就是说,你可以预料,会有对尚未在主支未集成的变化,但是从Perforce公司的角度来看,也有在主尚未成为在分支机构未整合的变化。 – 2013-04-02 18:10:14

+0

由于上述原因,我给了-1。我实际上已经尝试过这一点,它可能会导致意外的行为。当你整合回主体时,变化将不会在那里。 – Ykok 2015-07-14 09:34:42

18

从Perforce 2013.1开始,您可以在一个分支中搁置文件,并将其搁置到另一个分支中,并使用分支规范或流作为映射。

这里是the documentation,它描述了新的-b-S选项。

+0

你可以带来和示例如何使用-b?该文档只说使用-b标志!我一直在努力的若干变化和它不工作,说不明分支“的/ dev /分支” – Shervin 2016-01-06 21:16:36

+2

发现了它。为了记录,-b应该被赋予分支从搁置分支映射到我们希望更改列表未被搁置的分支。以下是如何创建一个映射:http://www.perforce.com/perforce/doc.current/manuals/p4v/Managing_branch_specifications.html – Shervin 2016-01-06 21:39:37

+0

@Shervin死链接:-( – user234461 2018-03-06 15:57:27

0

您也可以使用“p4 move -f/main/.../dev/branch/...”来完成此操作。

  1. 确保唯一可编辑的文件,你必须在/主/ ...你想要移动的人。在任何其他更改列表中搁置和还原文件
  2. 命令行:“p4 move -f/main/.../dev/branch/...”
  3. 变更集中的文件现在位于/ dev /作为需要解决
  4. 解决每个文件就像你将一个普通的冲突
相关问题