Я работал над проектами с похожей политикой. Причина, по которой нам нужна такая политика, заключается в том, что мы не использовали ветки. Если разработчикам разрешено создавать ветку, то они могут делать любые необходимые коммиты в этой ветке и никому не прерывать - политика становится «не объединяться с основной» в течение периода еженедельной сборки.
Другой подход заключается в разделении еженедельной сборки на ветку, так что независимо от того, что проверено (и возможно объединено), еженедельная сборка не будет затронута.
Использование меток, как предложил VonC, также является хорошим подходом. Однако вам необходимо учитывать, что происходит, когда помеченному файлу требуется исправление для ночной сборки - что, если разработчик зарегистрировал изменение в этом файле с тех пор, как он был помечен, и что изменения разработчика не следует включать в еженедельную сборку ? В этом случае вам все равно понадобится ветка. Но разветвление от метки тоже может быть хорошим подходом.
Я также работал над проектами, которые превращают ветки в сумасшедшие, и это становится беспорядком, пытаясь выяснить, что происходит с каким-то конкретным файлом. Изменения могут быть зафиксированы в нескольких ветвях за один и тот же период времени. В конце концов конфликты слияния должны быть разрешены. Это может быть довольно головной болью. В любом случае, я предпочитаю использовать ветки.