I agree with Magnus Bäck. Unlike SVN you can create different copies of git-repos and merge them into one another without a server, just on your local machine. So you can have a bunch of copies of the same repository and each client/process gets its own folder. You can delete and copy them when you need more or less.
Also you can do
git remote add local_original file:///var/git/project.git
in each copy and use this for
git push local_original
to push the changes to this local repository to synchronize all users working on it.
I would go in favor of copying because it can scale better than locks. Here is something that I implemented that does not have to scale but that I would implement with copying if it had to: https://github.com/niccokunzmann/gh-pages-edit