Penso che eseguire revisioni manuali del codice sia ... beh ... un po 'anni '80. Beh, forse anni '90.
In questa era moderna di integrazione continua e sistemi di revisione del codice online, non si vuole davvero trattenere alcun commit del codice solo perché si teme che "potrebbe interrompere il controllo del codice sorgente".
Andiamo gente. Ecco a cosa servono i changeset (o gli change list). Fai in modo che i tuoi programmatori nutrano le fauci affamate del tuo sistema di controllo del codice sorgente. Quindi il tuo server di integrazione continua entra in gioco con una serie di build mirate (beh, si spera solo la build giornaliera, ma alcuni di noi vengono portati via). Se qualcosa si rompe, metti il trofeo della scimmia codice (di solito un giocattolo di plastica che qualcuno ha trovato da una scatola di cereali Lucky Charms) sulla scrivania dell'autore del reato, e ripristina l'elenco delle modifiche. Bene, alcuni sistemi di integrazione continua inviano automaticamente notifiche e-mail / messaggistica istantanea / desktop a tutti i membri del team / dipartimento / organizzazione che la build è interrotta, insieme a un elegante collegamento ipertestuale per mostrare a tutti coloro che hanno rotto esattamente la build in quale file o test. Ora è il programmatore sfortunato
Durante l'esecuzione di questo processo, il sistema di revisione del codice si avvia (di nuovo, attivato dal check-in). Un elenco di membri qualificati del team viene informato dell'elenco di modifiche impegnato nel controllo del codice sorgente, una revisione viene avviata nel sistema di revisione e tutti iniziano a scrivere annotazioni sulle modifiche nell'elenco delle modifiche. Eventualmente tutti diranno "LGTM". Se il programmatore è intelligente, ricorderà di pregare / corrompere / nascondere. Se ci sono problemi seri, i revisori possono creare un difetto (che può essere agganciato al sistema di tracciamento dei bug), o persino richiedere il backup dell'elenco modifiche. Sì, i cambiamenti arretrati hanno danneggiato non solo l'ego, ma la mente, è vero. È un buon condimento per gli sviluppatori junior, per reintegrare le liste di modifiche rifiutate.
Se nel tuo ambiente di sviluppo manca un elemento della configurazione o un sistema di revisione del codice, dovresti indagare seriamente su questi. Un paio di link potrebbero aiutarti:
Atlassian Crucible
JetBrains TeamCity
reitveld
Cruise Control
Se hai intenzione di ottenere un server CI, dovresti anche pensare seriamente ai framework di unit test. Se sei un sviluppatore C #, cerca qualcosa come NUnit per iniziare.