Continuous Integration в связке с DVCS — как?
Не знаю, у нас коммиты в develop делаются только руками и только после ручного тестирования. Да, hudson умеет делать post-build push, но успешная прогонка тестов не означает абсолютно правильную работу программы.
feature бранч — это вообще говоря вещь для локальной разработки девелопером. Иногда надо поделится с другим девелопером кодом из этой бранчи, тогда, как неизбежное зло, эта бранча попадает на центральный репозиторий вашей команды. Но вообще говоря, ее для остального мира не существует. А функциональность для мира начинает существовать только когда бранча смерджена в develop, а сама она уже прибита.

Так вот исходя из вышесказанного, CI собирает только develop и master. Остальных бранчей для него не существует.

Решением сложностей при мердже бранчи в девелоп после длительного периода является периодический бэкпортинг изменений из девелопа в бранчу, чтобы бранча была как бы все время up-to-date с изменениями в девелопе.

Код ревью делается при мердже бранчи в девелоп, т.е. когда можно посмотреть изменения между результатом git merge --no-ff --no-commit и develop baseline.