Как я могу использовать Perforce Shelving, чтобы один человек создал изменение, а другой отправил его? - PullRequest
8 голосов
/ 19 марта 2012

Я хочу, чтобы Пользователь A мог создать список изменений в Perforce, а затем отложить его. Затем я бы хотел, чтобы UserB мог отменить удаление этого списка и отправить его.

Звучит просто, но перелистывание Perforce не работает так, как я ожидал. Когда пользователь B запускает «p4 unshelve -s 1234», он отменяет все измененные файлы из изменения 1234, но не приносит с собой метаданные изменения (описание, исправления задания)! Это означает, что пользователь B может скопировать готовый CL в совершенно новый CL и отправить его (путем ручного воссоздания описания и исправлений), но при этом старый отложенный CL остается без изменений.

Здесь логично было бы: Пользователь B до

  1. Отмена полки CL
  2. Просмотр метаданных отложенного CL
  3. Скопируйте эти метаданные в новый CL
  4. Отправьте новый CL
  5. Удалите старый стеллаж CL
Это то, что Perforce документация даже рекомендует. Возникла бы одна маленькая проблема: Пользователю B не разрешается удалять полки других пользователей! Только пользователь A и администратор p4 могут удалить свой отложенный CL. Я не понимаю, почему документация закрывает глаза на это.

Кто-нибудь когда-нибудь имел эту проблему раньше? Как вы решили это?

РЕДАКТИРОВАТЬ: Я должен уточнить, что мой вопрос очень обобщенный. Я работаю над инструментом, в котором UserA является разработчиком, а UserB является самой системой сборки. Разработчик откладывает CL, а затем отключает систему сборки и проверяет ее серией сборок и тестов (автоматически отправляя CL, если он прошел все эти тесты). Ожидается, что каждый разработчик не забудет удалить свои отложенные CL, если система сборки представила их, похоже, обречена на неудачу!

Ответы [ 2 ]

2 голосов
/ 19 марта 2012

Как насчет того, чтобы система сборки отправляла обратно уведомление об успехе или неудаче и позволяла разработчику самостоятельно представить список изменений?

Попытка автоматизировать отправку списка изменений может быть затруднена, если какие-либо файлы необходимо разрешить. Возможно, вы сможете автоматизировать некоторые из них, но не в случае возникновения каких-либо конфликтов.

1 голос
/ 14 августа 2013

Эта функция, представленная в Perforce 2013.1, может оказаться полезной:

    #539809 (Bug #53058) **
        Shelved changes containing files that do not require resolve
        may be submitted directly without unshelving first via
        'p4 submit -e <shelvedChange#>'. See 'p4 help submit' for
        details and restrictions.
...