Personally I commit all PHP files to subversion, except for one, which contains the server-specific config info, f.e. database details.
Then in the staging and production environments, I svn checkout my working copy ( the appropriate revision) and then svn export it into my web directory.
The server config file I manually edit and copy into staging / production, as it needs to be different for each one.
My system currently doesn't deal with files being deleted very elegantly (i.e. svn export does NOT remove old deleted files). Other than that, it's fine.
Mark