Мне в целом нравится процесс, принятый в одном из прошлых мест работы, его модификацию использую до сих пор:
* каждая фича делается в отдельном репозитории
* на каждый репозиторий разворачивается демо-сайт, который тестят тестеры
* после окончания разработки и одобрения тестерами делается дифф со свежим транком (лично я для этого юзаю rdiff, который потом заливается куда надо (на старом проекте — локальный Rietveld, на всех своих Reviewboard)
* там код ревьюится кем-то ключевым, кто имеет право коммитить в транк, либо просто перекрестно друг друга ревьюим
* если все ок, то в транк