Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2026.1

# Push-submit triggers

Use the `push-submit` trigger type to create triggers that fire after changelist creation, but before files are transferred to the shared server. Because push-submit triggers fire before files are transferred to the server, these triggers cannot access file contents. Push-submit triggers are useful for integration with reporting tools or systems that do not require access to file contents.

Push processing limits the commands you can run in a push-submit trigger, so use only the following commands:

    p4 change -o %changelist%
    p4 describe -s %changelist%
    p4 files //path/...@=%changelist%
    p4 fstat //path/...@=%changelist%

Example:

The following push-submit trigger is an MS-DOS batch file that rejects a changelist being pushed if the changelist description does not contain a line of the form Reviewed and approved ("signed off") by: XXXXXXXX .

    @echo off

    if not x%1==x goto doit
    echo Usage is %0[change#]
    exit 1
    :doit
    p4 describe -s %1 | findstr "Reviewed and signed off" > nul
    if errorlevel 1 echo "Changelist %1 missing review information."

To use the trigger, add the following line to your triggers table:

    sample1   push-submit //depot/qa/...   "reviewcheck.bat %changelist%"

Every time a changelist is pushed that affects any files under `//depot/qa`, the `reviewcheck.bat` file is called. If the string "`Reviewed and signed off`" is detected, the script assumes that the required review has happened and permits the changelist push to continue. Otherwise the push is rejected.

The `p4 change` and `p4 describe` commands do not display associated fixes when run from the push-submit or push-content triggers, even if the changes being pushed have associated fixes that are added as part of the push.

Your search for returned results