В моем последнем проекте мы следовали очень разветвленной модели разработки - каждая задача имела ветку с именем задачи. Обзоры кода были выполнены против названной ветви. Мы явно хотели, чтобы они были перенесены в центральное хранилище, и разработчики их извлекли.
Однако ни одна задача с именем ветвь не была объединена с веткой интеграции (в нашем случае это по умолчанию, но это могла быть любая ветвь функций), пока она не прошла проверку кода.
Многие разработчики Mercurial не любят использовать недолговечные ветки, которые остаются в хранилище, но я считаю, что это облегчает отслеживание истории, особенно если смотреть на историю одного изменения - вы знаете, что изменения для конкретной задачи находятся в связанной именованной ветви.