Perforce is a commercial VCS that is similar to CVS (revisions per file) and SVN (global revisions of whole tree). It's support for status command is very clumsy. Let's check how we can emulate status with this tool using small script:
echo === extra files not tracked by Perforce === find . '!' -type d '!' -executable | p4 -x - have 2>&1 | grep 'not on client' | \ sed '/\/moc_/d;/\.so/d;/\.o /d;/Makefile /d;/\.a /d' echo === Current changelist === p4 changelist -o
As you can see we implemented "ignore" mechanism in above script (by sed filtering). "Extra files not tracked by Perforce" reflects "?"-status from CVS/SVN. "Current changelist" reflects "A,D,U"-statuses from CVS/SVN.
By using such script you can ensure your commit contains all files from your workspace, thus will be buildable on other developers' machines.