Como Simon Whitehead menciona em seu comentário , depende da sua estratégia de ramificação.
Se os desenvolvedores tiverem sua própria ramificação privada para desenvolvimento (o que eu recomendaria na maioria das situações de qualquer maneira), eu executaria a revisão de código antes de mesclar com o tronco ou repositório principal. Isso permitirá que os desenvolvedores tenham a liberdade de fazer o check-in com a frequência que quiserem durante seu ciclo de desenvolvimento / teste, mas qualquer código de tempo vai para o ramo que contém o código entregue, e é revisado.
Geralmente, suas experiências ruins com as revisões de código parecem mais um problema com o processo de análise que possui soluções. Ao analisar o código em partes menores e individuais, você pode garantir que não demore muito. Um bom número é que 150 linhas de código podem ser revisadas em uma hora, mas a taxa será mais lenta para pessoas não familiarizadas com a linguagem de programação, o sistema em desenvolvimento ou a criticidade do sistema (uma segurança crítica requer mais tempo) essa informação pode ser útil para melhorar a eficiência e decidir quem participa das revisões de código.