If multiple users accesses file based SVN repository to commit many things simultaneously, can SVN guarantee data integrity? If it is, how? Or if it isn't what serving method should I use for multi-user situation?
Subversion commits are designed to be atomic. Multiple users committing the same revision number at the same time should therefore be impossible. From the subversion book:
An svn commit operation publishes changes to any number of files and directories as a single atomic transaction. In your working copy, you can change files' contents; create, delete, rename, and copy files and directories; and then commit a complete set of changes as an atomic transaction.
By atomic transaction, we mean simply this: either all of the changes happen in the repository, or none of them happens. Subversion tries to retain this atomicity in the face of program crashes, system crashes, network problems, and other users' actions.
Each time the repository accepts a commit, this creates a new state of the filesystem tree, called a revision. Each revision is assigned a unique natural number, one greater than the number of the previous revision. The initial revision of a freshly created repository is numbered 0 and consists of nothing but an empty root directory.