Ответ Тоби Аллена - лучший подход, если ваши ярлыки - это простые списки изменений.
Если ярлыки сложнее, то, я думаю, вам нужно просмотреть все файлы в каждом ярлыке и узнать, где отличаются их версии, найти список изменений, в котором изменилась версия.
Вы можете получить список файлов и версий с помощью:
p4 fstat -Of //...@MyLabel
EDIT:
Рассмотрим две сложные метки:
VERSION_A:
//depot/file_A.cpp#4
//depot/file_B.cpp#7
//depot/file_C.cpp#1
VERSION_B:
//depot/file_A.cpp#6
//depot/file_B.cpp#5
//depot/file_C.cpp#4
В этом примере метки не описывают конкретный список изменений, изменение заголовка для каждого файла может быть различным.
Если у вас могут быть такие метки, вы можете запустить команду p4 fstat для каждой метки и затем найти различия. В этом примере file_A.cpp
изменился дважды, а file_C.cpp
изменился 3 раза. file_B.cpp
старше второго ярлыка, поэтому его можно игнорировать.
Итак, теперь вам нужно взглянуть на изменения, связанные с этими версиями:
file_A.cpp#5
file_A.cpp#6
file_C.cpp#2
file_C.cpp#3
file_C.cpp#4
Эти изменения можно получить с помощью p4 filelog, поэтому вы хотите запустить что-то вроде этого:
p4 filelog file_A.cpp#6
p4 filelog file_C.cpp#4
Затем вам нужно удалить все дубликаты и историю для более ранних версий.
Как я уже сказал, это нужно вам, только если у вас есть грязные ярлыки. Если есть какой-либо способ сделать ваши ярлыки представляющими списки изменений, вы должны использовать ответ Тоби Аллена.