P4V редактировать первую версию интегрированных файлов перед отправкой
Я хотел бы скопировать некоторые новые файлы кода, созданные для конкретного проекта клиента, в нашу основную базу кода с помощью встроенного программного обеспечения. Тем не менее, я также хотел бы удалить некоторые специфичные для клиента функциональные возможности из кода для первой ревизии основной строки. До сих пор я не могу сказать, есть ли способ интегрировать и редактировать код за один шаг, без предварительной отправки неотредактированного кода, а затем сразу же проверить его для редактирования. Я особенно хотел бы сделать это в рамках P4V, но также рассмотрю подходы командной строки. Ваше понимание ценится.
1 ответ
Вы можете, конечно, интегрировать и редактировать в одном списке изменений. У этого подхода есть свои плюсы и минусы: некоторые люди понимают, как вы указали, что код, отправляемый обратно в основную кодовую базу, содержит требуемые изменения немедленно, не требуя отдельной редакции, в то время как другие предпочитают ясность возможность видеть изменения явно в их собственном списке изменений.
Несмотря на это, общая процедура для этого заключается в следующем:
- Интегрировать файлы обратно в основную и разрешить слияния
- Откройте файлы в основном для редактирования
- Сделайте соответствующие изменения, скомпилируйте, протестируйте и т. Д.
- Отправить ваши изменения
Повторно открывая файл для редактирования до отправки, вы преобразуете простую интеграцию "ветвления" в интеграцию "надстройки", где файл помечается как разветвленный из другого файла и отредактированный.
Часто при рассмотрении альтернативных подходов, подобных этому, мне нравится иметь небольшой тестовый сервер, на котором я могу экспериментировать с различными последовательностями команд, чтобы посмотреть, как будет выглядеть история.
В данном конкретном случае приведен краткий пример интеграции нового файла проекта обратно в 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.