2

我的仓库中有一个分支,我想将其复制到仓库中当前不存在的并行位置。(即我目前有 \depot\rev6.2...,我需要在 \depot\rev6.2b... 创建另一个分支...)我还希望发生两件事:

首先,我需要将 rev6.2 中的更改列表历史复制到 rev6.2b。当我尝试使用集成功能时,我在 depot 中有一个新分支,但历史记录是空白的(我提交的 CL 中只有 1 个条目来创建分支)。

第二(如果可能的话)我想找到一种快速的方法,以便在 rev6.2 中进行新更改时,我也可以轻松地将它们应用到 rev6.2b 分支。

我是一个非常基本的 P4V 用户(2011.1),所以越详细越好。提前感谢您的帮助!!

4

2 回答 2

9

您需要启用分支历史记录。单击我用红色圈出的图标,然后在下拉列表中选择“Follow Branch Actions”。

如何启用分支历史

关于您的第二个问题,如果您想从原始分支带来更改,您可以再次运行集成。Perforce 跟踪集成历史,因此它知道分支何时创建,以及从那时起集成了哪些更改(如果有的话)。

于 2012-02-08T18:39:45.150 回答
0

Perforce 保留所有集成历史记录,正如其他人已经提到的那样,“rev6.2b”分支中的所有内容都将其历史记录到“rev6.2”分支。P4V 修订图直观地显示了所有这些历史记录。在命令行上使用“p4 filelog”或“p4 filelog -i”命令,例如:

$ p4 filelog //depot/rev6.2b/...
//depot/rev6.2b/bar
... #1 change 12179 branch on 2016/02/25 by super1@super2015.2 (text) 'copy'
... ... branch from //depot/rev6.2/bar#1
//depot/rev6.2b/foo
... #1 change 12179 branch on 2016/02/25 by super1@super2015.2 (text) 'copy'
... ... branch from //depot/rev6.2/foo#1

输出显示 rev6.2b 中的文件是从 rev6.2 目录分支的。

我不确定您使用的 Perforce 服务器和 P4V 客户端的版本和操作系统,但这里有一些反馈。

关于是否在 rev6.2 中进行了新的更改,为了轻松地将它们应用到 rev6.2b 分支,您也可以使用更改提交触发器来执行此操作。您可以创建一个具有将所有更改从“rev6.2”映射到“rev6.2b”的视图的分支规范,然后在复制或整数命令中使用分支规范。

请参阅管理员指南:更改提交触发器 https://www.perforce.com/perforce/doc.current/manuals/p4sag/chapter.scripting.html#scripting.triggers.submits.commit

示例分支规范

这是一个名为“master6.2copy”的分支规范的视图

View:
    //depot/rev6.2/... //depot/rev6.2b/...

例子

这是显示触发脚本内容的 *.bat 文件。(这不是一个官方的 Perforce 脚本,只是一个可以调整的例子。)下面的第一行也可以是:

p4 -p localhost:1666 -u myuser -c mywksp 复制 -b master6.2copy

@echo off
::
:: Example:   The following change-commit trigger is an MS-DOS batch file
:: This trigger fires only after a changelist submission on a master directory
:: 
:: Add the following line to your triggers table:
::
:: copymaster change-commit //depot/rev6.2/... "/home/user/scripts/copyrev6-2.bat"

p4 -p localhost:1666 -u myuser -c mywksp integ -b master6.2copy
p4 -p localhost:1666 -u myuser -c mywksp resolve -at
p4 -p localhost:1666 -u myuser -c mywksp submit -d "rev6.2 copy to rev6.2b after changelist"
exit 0

希望这可以帮助!

于 2016-02-25T23:50:41.790 回答