With gitosis, is it possible to specify write permissions so that users can push freely to branches with their own name, but not merge with the master? E.g. $USER/test1 .. $
The Gitolite project offers this functionality. It's a rewrite of Gitosis in Perl. Its code can be found on github
When I first wrote this answer, it didn't support gitweb or git-daemon integration, but it does now.
gitweb
git-daemon