By default if a user does not alter the default change description, "<enter description here>", Perforce raises an error when saving the changelist form. This behavior can be retained, with custom default text. A form-out trigger will allow you to adjust a form before it's presented to the user, and a form-in trigger can check to make sure that the form contains the information you require, including a change to the default text.
A form-out trigger fires just before the form is presented to the user, allowing your chosen application to adjust the text being displayed. A form-in trigger fires when the form is returned to the Perforce Server, allowing your chosen application to check for certain values. If a trigger script returns a non-zero value, the trigger is deemed to have failed, and the action will not complete. If a zero-value, the trigger passes and the action completes.
Here is an example with a trigger table that contains two entries - one "form-out" and one "form-in" trigger:
desc-out form-out change "C:\trig\submitdesc.bat out %formfile%"
desc-in form-in change "C:\trig\submitdesc.bat in %formfile%"
The file "submitdesc.bat" handles both form input and output based on the first parameter passed to the script.
Note: This script is neither fully tested nor supported; it is an example to demonstrate this technique. While you can use this script for your own purposes, it should be tested fully in a non-production environment and modified as needed:
if ##%1##==##out## set opt=out
if ##%1##==##in## set opt=in
if ##%2##==#### set opt=end
set mydesc=[Task: description]
sed "s//%mydesc%/" %2 > C:\tmpfile
mv C:\tmpfile %2
findstr /C:"%mydesc%" %2
if %errorlevel%==1 exit /b 0
if %errorlevel%==0 exit /b 1
With these two trigger entries in place, entering the command "p4 change" opens a new change with the custom description, "[Task: description]". When saved and the default editor is closed, a new pending change is created.
If the default change is not changed when closing the editor, the new pending change is not created, and an error is displayed:
Error in change specification.
'desc-in' validation failed: [Task: description]
Hit return to continue...
Hitting return re-opens this form. If the editor is closed again without changing this description, the "Specification not corrected -- giving up." error is displayed, just as with the default change description.
More information about scripting is provided in the Perforce System Administrator's Guide.
For further assistance, please contact Perforce Technical Support.