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

Я хочу UserA, чтобы иметь возможность создать список изменений в 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 не разрешено удалять отложенные CL другого пользователя! Только UserA и администратор p4 могут удалить его отложенный CL. Я не понимаю, почему документация замалчивает это.

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

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

8
задан Jay Spang 19 March 2012 в 04:45
поделиться