philip
The standard, documented, way is to allocate a repository username/password that is used when invoking svnsync and is not used for anything else, then use the start-commit to check the username. However that doesn't prevent commits using the username/password by clients other than svnsync. It's up to you not to use the username/password for anything other than svnsync.
In the pre-commit you could check for the presence of the r0 revision property svn:sync-lock, that indicates that svnsync was started and has not yet removed the lock. However that doesn't prevent other commits while svnsync is running or if svnsync died and failed to removed the property.