Для серьезной сборки (той, которая готовится к тестированию) явно укажите желаемую метку или номер списка изменений , синхронизируйте с меткой и вставьте ее в артефакты сборки.
Если список изменений (или метка) не указан, используйте, p4 counter change
чтобы получить текущий номер изменения и записать его. Но вам все равно нужно синхронизировать все, используя этот номер изменения.
Я не думаю, что вы можете добиться именно того, чего хотите, потому что, как правило, все рабочее пространство не синхронизируется с конкретным номером списка изменений. Можно явно синхронизировать некоторые файлы со старыми версиями, и тогда один номер списка изменений не имеет смысла. Вот почему требуется свежий sync
код, чтобы гарантировать, что один номер списка изменений точно представляет версию кода.
Что касается комментариев: да, мой ответ предназначен для использования менеджерами конфигурации, которые готовят сборку для передачи в QA. Наши разработчики обычно не синхронизируются как часть сборки; они выполняют сборку перед отправкой, чтобы убедиться, что их изменения не нарушают сборку или тесты. В этом контексте мы не пытаемся встроить метку репозитория.
С вашим подходом вы делаете предположение, что все ваше рабочее пространство было синхронизировано с головой во время последней отправки списка изменений, и этот список изменений включал все ваши открытые файлы. Слишком легко ошибиться в этих предположениях, сложно обнаружить и ужасно дорого с точки зрения потерянного времени. С другой стороны, решить проблему легко, без недостатков. А поскольку номер списка изменений может быть указан явно, не имеет значения, какая ревизия вам нужна или как быстро меняется кодовая база.
p4 changes | head -1
кажется проще, чем большинство из этих решений.