我想使用集成将为客户特定项目创建的一些新代码文件复制回我们的主代码库。但是,我还想从主线的第一个版本的代码中删除一些特定于客户端的功能。到目前为止,我无法判断是否有一种方法可以在一步中集成和编辑代码,而无需先提交未编辑的代码,然后立即再次将其检出以进行编辑。我特别想在P4V的范围内这样做,但也会考虑命令行方法。非常感谢您的见解。
答案 0 :(得分:1)
您当然可以在单个更改列表中进行集成和编辑。这种方法有利有弊:正如您所指出的,有些人欣赏提交回主代码库的代码会立即包含所需的编辑,而不需要提交单独的修订,而其他人则更喜欢能够在他们自己的变更列表中明确地看到编辑。
无论如何,整个程序如下:
通过在提交之前重新打开要编辑的文件,您可以转换一个简单的"分支"整合到" add-from"集成,其中文件被标记为从另一个文件和编辑分支。
通常,在考虑这样的替代方法时,我希望有一个小型测试服务器,我可以在其中试验不同的命令序列,以查看历史记录的样子。
在这种特殊情况下,这是一个快速示例,将新项目文件集成回main,并在集成过程中对其进行编辑,并显示结果。它完全在命令行中,使其更清晰
C:\Users\Bryan\perforce\client>p4 integrate project/b main/b
//depot/main/b#1 - branch/sync from //depot/project/b#1
C:\Users\Bryan\perforce\client>p4 opened
//depot/main/b#1 - branch default change (text)
C:\Users\Bryan\perforce\client>p4 edit main/b
//depot/main/b#1 - reopened for add
C:\Users\Bryan\perforce\client>p4 opened
//depot/main/b#1 - add default change (text)
C:\Users\Bryan\perforce\client>vim main/b
C:\Users\Bryan\perforce\client>p4 resolved
c:\Users\Bryan\perforce\client\main\b - branch from //depot/project/b#1
C:\Users\Bryan\perforce\client>p4 submit -d merge
Submitting change 4.
Locking 1 files ...
add //depot/main/b#1
Change 4 submitted.
C:\Users\Bryan\perforce\client>p4 filelog //depot/main/b
//depot/main/b
... #1 change 4 add on 2014/12/10 by Bryan@Dell660 (text) 'merge'
... ... branch from //depot/project/b#1
C:\Users\Bryan\perforce\client>p4 diff2 //depot/project/b //depot/main/b
==== //depot/project/b#1 (text) - //depot/main/b#1 (text) ==== content
1c1
< This is b in project
---
> This is b, which came from project but was edited into main.