Назад | Перейти на главную страницу

Как отменить отправку ранее подтвержденного списка изменений Perforce?

Я только что отправил список изменений Perforce (p4), в который мне нужно внести небольшие изменения, чтобы исправить сборку. Как мне отменить отправку недавно отправленного списка изменений p4?

Вы можете использовать синхронизацию p4 и редактировать / разрешать / отправлять, чтобы откатить отправленный список изменений. Подробные инструкции см. На: https://community.perforce.com/s/article/3474

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

С 2016.2 новая команда p4 undo предоставляется, чтобы упростить отмену одного или нескольких списков изменений.

Например,

p4 undo @12345

Эта команда откроет в вашем рабочем пространстве файлы, измененные в Changelist 12345. Эти файлы будут иметь содержимое, соответствующее их предыдущим редакциям. После отправки открытых файлов действие Changelist 12345 отменяется.

p4 undo также поддерживает диапазоны ревизий для одновременной отмены нескольких списков изменений.

Обратите внимание: если файлы были изменены после предоставленного списка изменений, вам потребуется p4 sync и p4 resolve файлы как обычно.

Смотрите здесь для получения дополнительной информации: https://www.perforce.com/perforce/doc.current/manuals/cmdref/Content/CmdRef/p4_undo.html

# source: https://community.perforce.com/s/article/3474

prevcl=`expr $1 - 1`
echo previous $prevcl

p4 sync @$prevcl

# open all of the edited files
for name in `p4 describe -s $1 | egrep '#[0-9]+ edit$' | cut -f 1 -d# | colrm 1 4`
do
   echo "reverting edits to $name"
   p4 edit $name
done

# add all of the deleted files
for name in `p4 describe -s $1 | egrep '#[0-9]+ delete$' | cut -f 1 -d# | colrm 1 4`
do
   echo "restoring deleted file $name"
   p4 add $name
done

p4 sync @$1
p4 resolve -ay
p4 sync
p4 resolve

# delete all of the added files
for name in `p4 describe -s $1 | egrep '#[0-9]+ add$' | cut -f 1 -d# | colrm 1 4`
do
   echo "removing added file $name"
   p4 delete $name
done