我在我的软件仓库中有一个分支,我想要复制到软件仓库中当前不存在的并行位置。 (即我目前有\ depot \ rev6.2 ......我需要在\ depot \ rev6.2b创建另一个分支......)我还想做两件事:
首先,我需要将rev6.2中的更改列表历史记录复制到rev6.2b。当我尝试使用集成功能时,我在软件仓库中有一个新分支,但历史记录是空白的(只有1个条目来自我提交的CL以创建分支)。
第二个(如果可能的话)我想找到一个快速的方法,以便如果在rev6.2中进行了新的更改,我也可以轻松地将它们应用到rev6.2b分支。
我是一个非常基本的P4V用户(2011.1),所以越多细节就越好。提前感谢您的帮助!!
答案 0 :(得分:9)
您需要启用分支历史记录。单击我用红色圈出的图标,然后在下拉列表中选择“关注分支操作”。
关于第二个问题,如果要从原始分支中提取更改,可以再次运行集成。 Perforce跟踪集成历史记录,因此它知道何时创建分支,以及从那时起集成了哪些变更(如果有的话)。
答案 1 :(得分:0)
Perforce保留所有集成历史记录,正如其他人已经提到过的那样,所有内容都来自于' rev6.2b'分支机构将把它的历史追溯到' rev6.2'科。 P4V修订图可以直观地显示所有这些历史记录。在命令行上的' p4文件日志'或者' 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分支,您也可以使用change-commit触发器来执行此操作。 您可以创建一个branchspec,其视图可以映射来自' rev6.2'的所有更改。到' rev6.2b'然后在copy或integ命令中使用分支规范。
请参阅管理员指南:更改提交触发器 https://www.perforce.com/perforce/doc.current/manuals/p4sag/chapter.scripting.html#scripting.triggers.submits.commit
示例BRANCHSPEC
以下是名为' master6.2copy'
的分支规范的视图View:
//depot/rev6.2/... //depot/rev6.2b/...
实施例
这是* .bat文件,显示了触发器脚本的内容。 (这不是官方的Perforce脚本,只是一个可以调整的例子。) 下面的第一行也可以改为:
p4 -p localhost:1666 -u myuser -c mywksp copy -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
希望这有帮助!