Скопируйте файлы в новую ветку и сохраните историю изменений в P4V - PullRequest
2 голосов
/ 08 февраля 2012

В моем депо есть филиал, который я хочу скопировать в параллельное местоположение, которого в данный момент нет в депо. (т.е. у меня в настоящее время есть \ depot \ rev6.2 ... и мне нужно создать еще одну ветку в \ depot \ rev6.2b ...) Есть 2 вещи, которые я бы тоже хотел сделать:

Во-первых, мне нужна история изменений из rev6.2, чтобы скопировать в rev6.2b. Когда я попробовал использовать функцию интеграции, у меня появилась новая ветвь в депо, но история пуста (только 1 запись из CL, которую я отправил для создания ветки).

Во-вторых (если возможно), я хотел бы найти быстрый способ, чтобы, если в rev6.2 были сделаны новые изменения, я мог легко применить их и к ветви rev6.2b.

Я довольно простой пользователь P4V (2011.1), поэтому чем больше деталей, тем лучше. Заранее спасибо за любую помощь !!

Ответы [ 2 ]

9 голосов
/ 08 февраля 2012

Вам необходимо включить историю веток. Нажмите на обведенный красным значок и в раскрывающемся списке выберите «Следовать за действиями в филиалах».

How to enable branch history

Что касается вашего второго вопроса, если вы хотите перенести изменения из исходной ветки, вы можете просто запустить интеграцию во второй раз. Perforce отслеживает историю интеграции, поэтому она знает, когда была создана ветка, и какие изменения были внесены с тех пор (если есть).

0 голосов
/ 26 февраля 2016

Perforce хранит всю историю интеграции, как уже упоминалось, так что все, начиная с ветви 'rev6.2b', будет иметь свою историю, отслеженную до ветви 'rev6.2'.График изменений P4V показывает всю эту историю визуально.В командной строке команды 'p4 filelog' или '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 вы также можете использовать триггер фиксации изменений, чтобы сделать это.Вы можете создать отраслевую спецификацию, которая имеет представление, которое отображает все изменения от 'rev6.2' до 'rev6.2b', а затем использовать спецификацию ветви в команде copy или inte.

См. Руководство администратора: изменениеТриггеры -commit 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

Надеюсь, это поможет!

...