1

我想使用集成将一些为特定于客户端的项目创建的新代码文件复制回我们的主代码库。但是,我还想从主线第一版的代码中去除一些特定于客户端的功能。到目前为止,我不知道是否有一种方法可以让我在一个步骤中集成和编辑代码,而无需先提交未经编辑的代码,然后立即将其签出以再次进行编辑。我特别想在 P4V 的范围内做到这一点,但也会考虑命令行方法。感谢您的洞察力。

4

1 回答 1

2

您当然可以在单个更改列表中集成和编辑。这种方法有利有弊:正如您所指出的,有些人欣赏提交回主代码库的代码立即包含所需的编辑,而无需提交单独的修订,而其他人则更喜欢清晰的能够在他们自己的变更列表中明确地看到编辑。

无论如何,这个的总体过程如下:

  1. 将文件重新集成到主文件中,并解决合并问题
  2. 在 main 中打开文件进行编辑
  3. 进行适当的编辑、编译、测试等。
  4. 提交您的更改

通过在提交之前重新打开文件进行编辑,您可以将简单的“分支”集成转换为“添加自”集成,其中文件被标记为从另一个文件分支已编辑。

通常,当考虑像这样的替代方法时,我喜欢有一个小型测试服务器,我可以在其中试验不同的命令序列,看看历史会是什么样子。

在这种特殊情况下,这是一个将新项目文件集成回主文件并在集成期间对其进行编辑并显示结果的快速示例。这一切都在命令行中,使其更清晰

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.
于 2014-12-10T15:07:24.920 回答