将delta更改上载到perforce和label

时间:2014-04-29 21:01:44

标签: perforce

每个月我都需要从git同步大块文件并将其上传到perforce并创建一个上传所有文件的p4标签,并且从p4我建立,这很奇怪但我们现在无法改变它。到目前为止,我每次都将文件上传到p4中的新目录并使用所有上传的文件创建标签,因此我得到一个干净的标签,用于"本月的构建"虽然大多数文件与上个月的上传相比都没有变化,但这是通过shell脚本发生的,有没有办法只上传增量更改并使用旧文件创建标签(不上传,因为它没有#&# 39; t更改)+更改/全新文件上传?任何高层次的指示都会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我是否理解正确“我每次都将文件上传到p4中的新目录”意味着,每次执行'p4 submit'时,更改列表中的文件实际上是不同的文件名称,而不仅仅是相同文件的较新修订

也就是说,如果你对你提交的第一个更改列表进行'p4 describe',它会是什么样子:

//depot/dir/r1/A.c#1
//depot/dir/r1/B.c#1
//depot/dir/r1/C.c#1

当您下次运行工具并对变更列表进行“p4 describe”时,它看起来像:

//depot/dir/r2/A.c#1
//depot/dir/r2/B.c#1
//depot/dir/r2/C.c#1

如果您正在做的事情,那么如果您可以每次将文件复制到相同的位置,那么第一次运行工具时就会得到:

//depot/dir/A.c#1
//depot/dir/B.c#1
//depot/dir/C.c#1

你的工具第二次运行了:

//depot/dir/A.c#2
//depot/dir/B.c#2
//depot/dir/C.c#2

如果您使用那种方式,那么您可以使用Perforce的'revertunchanged'功能,并且不会提交上一次运行工具中未更改的文件,并且修订版本数字不会改变,所以随着时间的推移你可能得到:

//depot/dir/A.c#7
//depot/dir/B.c#4
//depot/dir/C.c#19

每次运行工具时,您仍然可以创建标签,因为标签不仅包括文件名,还包括修订号,因此您创建的第一个标签可能包括:

//depot/dir/A.c#1
//depot/dir/B.c#1
//depot/dir/C.c#1

虽然您创建的第19个标签可能包括:

//depot/dir/A.c#7
//depot/dir/B.c#4
//depot/dir/C.c#19

希望这会让你指向一个更适合你目标的方向。