Perforce (P4) Перемещение определенной версии в дереве к вершине дерева - PullRequest
1 голос
/ 03 июня 2019

Допустим, у меня есть версия файла foo.c в P4 с вершиной древовидной версии foo.c # 8.

По какой-то причине я хотел бы переместить foo.c # 4 какfoo.c # 9 (по сути, перемещение версии 4 в верхнюю часть дерева).

Один из способов - сделать это вручную (синхронизация версии 4, получение копии, затем синхронизация с вершиной дерева, редактирование и копирование 4).и повторно отправьте).

Есть ли более элегантный способ перенести foo.c # 4 на вершину дерева?

1 Ответ

4 голосов
/ 03 июня 2019

Звучит так, как будто вы хотите отменить ревизии от # 5 до #head:

p4 undo foo.c#5,#head
p4 submit

Или, если вы предпочитаете, вы хотите отменить все ревизии больше # 4:

p4 undo "foo.c#>4"
p4 submit

Или, если вы специально хотели просто отменить № 5 - № 8, даже если существуют более поздние версии:

p4 undo foo.c#5,#8
p4 submit

Этот последний вариант потребует шага разрешения конфликта sync / resolve, если есть более поздние версии(так что вы можете объединиться в более поздних ревизиях, игнорируя от 5 до 8).

Если вы используете версию сервера, которой более нескольких лет, вы можете попробовать p4 copy:

p4 copy foo.c#4 foo.c
p4 submit

Если вы используете версию сервера, которая даже старше этого, вот самый элегантный способ сделать это через обычный старый p4 sync:

p4 sync foo.c#4
p4 edit foo.c
p4 sync foo.c#head
p4 resolve -ay
p4 submit

Обратите внимание, что похоже на *Например, 1022 *, у вас есть опция при выполнении sync foo.c#head до sync и resolve -ay промежуточной версии, а затем sync и resolve -am более поздних версий, если вы хотите создать ревизию, которая «отменяет» определенные изменениясохраняя более поздние.

Вот способ сделать этос p4 print (меньше команд для простого случая, но IMO менее элегантно, потому что он не масштабируется до более сложных вариантов использования):

p4 edit foo.c
p4 print -o foo.c foo.c#4
p4 submit
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...