Non credo che Spotify abbia reso pubblica la sua strategia di ramificazione, ma possiamo parlare in generale di come funzionano le diverse strategie di ramificazione.
Molte applicazioni non hanno una singola filiale nel loro repository di codice. I due approcci più comuni che ho visto è un dev > test > approccio principale, o più comunemente ora, feature branch. Nel secondo caso, una squadra prende un ramo fuori dal main, lavora su una funzione, quindi la unisce nuovamente mentre completano il lavoro, in modo che non entrino in conflitto con altri team.
Detto questo, ci sono persone che sostengono un singolo ramo "principale" che tutti controllano tutto il giorno. Ciò richiede disciplina, ma non è così difficile da lavorare. Volete una buona copertura di test del vostro codice e la gente dovrebbe assicurarsi di inserire il codice più recente e assicurarsi che tutti i test passino prima di eseguire il commit. Inoltre, non appena una build fallisce, la priorità è massima finché non viene riparata. L'unico posto in cui ho visto i team hanno problemi con questo è dove è difficile dire se hai infranto un'altra parte del codice o dove i membri del team non sono abbastanza disciplinati e commettono il codice e se ne vanno senza assicurarti che costruisca e test passi .