When pipeline job is triggered by swarm, checkout perforce step with preview populate option is updating the client have list. There are unshelve and revert -k commands, related to swarm review, executed on the client, which are basically updating both workspace files and client have list.
Here is the log from the end of checkout perforce with preview option:
... [2021-12-28T15:39:54.217Z] P4 Task: syncing files at change: 233853 [2021-12-28T15:39:54.217Z] P4 Task: skipping sync. [2021-12-28T15:39:54.217Z] duration: (0ms) [2021-12-28T15:39:54.217Z] [2021-12-28T15:39:54.217Z] P4 Task: unshelve review: 234089 [2021-12-28T15:39:54.219Z] (p4):cmd:... p4 unshelve -f -s234089 -cdefault [2021-12-28T15:39:54.332Z] //sandbox_streams/development/project.txt - also opened by robot.obibok@robot.obibok_idk300_sandbox_streams [2021-12-28T15:39:54.332Z] [2021-12-28T15:39:54.338Z] (p4):stop:12 [2021-12-28T15:39:54.338Z] //sandbox_streams/development/project.txt [2021-12-28T15:39:54.338Z] ... duration: (121ms) [2021-12-28T15:39:54.339Z] (p4):cmd:... p4 revert -k C:\J_noAV\.agents\IDK447\workspace\pelines-test_sandbox_development/..___ [2021-12-28T15:39:54.355Z] (p4):stop:13
Full log from checkout step attached as p4preview.log
The documentation for p4 preview populate option clearly states:
No file sync or cleanup is attempted, and the Workspace "have list" is not updated.
In our use case, we use p4 plugin with preview option only to set up P4 env vars and then do all the p4 actions manually if needed. This unexpected behavior makes us to implement workarounds in case of swarm triggered builds, as the client have list must not be modified.