We use Jenkins for pre-commit verification.
To do this - developer shelve changes under CL. Jenkins job Sync to HEAD, unshelve changes, build and run verification.
If someone submit changes in shelved file and developer don't update and re-shelve this file before verification - submitted changes will be overridden by shelved file without any errors or merge.
Test case:
- create file test.txt with any content
- submit this file to Perforce under revision 1
- do any changes in this file and shelve it under CL
- change this file and submit under revision 2
- run job
- load file from SCM(configured in "Source Code Management>Perforce Software")
- unshelve CL in build steps
- check that second revision test.txt overridden by file from shelved CL.
Resolve Options doesn't change unshelve build step behavior.