Domanda
Esiste un motivo legittimo per NON utilizzare SVN per distribuzioni di produzione o si tratta semplicemente di un caso di preferenza personale e non esiste un caso reale contro SVN?
sfondo
Il mio posto di lavoro ha una cultura di etichettatura delle versioni in SVN e quindi dell'implementazione di tali versioni direttamente sui vari server Web utilizzando svn co
o svn switch
includendo direttamente nella produzione.
Personalmente ho un problema con questo perché credo che senza usare uno script di compilazione e distribuzione o una forma o una distribuzione automatizzata si perdono le impostazioni dell'ambiente di integrazione perché non sono documentate. Per di più, ho la sensazione che ci possa essere un pericolo nascosto nel fare ciò che è stato trascurato, qualcosa che deve ancora sollevare la sua brutta testa.
Ho sollevato le mie preoccupazioni con il personale delle operazioni che è responsabile della distribuzione del codice nei nostri vari ambienti (messa in scena, pre-produzione, produzione) ecc. I loro argomenti erano praticamente che ha funzionato abbastanza bene finora, nessun motivo per cambiare.
Modificare:
Cosa intendo per build e deploy:
Ad esempio, se uno sviluppatore richiede un'impostazione web.config aggiunta per un determinato ambiente. Web.config non è generalmente tenuto in svn e quindi questi file vengono aggiornati manualmente senza alcuna forma di script di build automatizzato. Quindi, se vengono persi o OPS dimentica di aggiungere un campo a web.config per una versione, allora hai dei problemi.
Uno script di build che utilizza XMLPoke per generare automaticamente un web.config appropriato per un particolare ambiente è l'ideale in quanto si dispone di uno script versionabile che documenta tutte le modifiche necessarie per ciascuno dei propri ambienti.
Metodo di compilazione e distribuzione corrente
Per il progetto in questione uno sviluppatore crea manualmente una versione, altri progetti hanno la fase di compilazione automatizzata con NANT o MSBuild che è OK.
Le migrazioni del database per la maggior parte dei progetti avvengono tramite script DB o script di migrazione (Migrator.NET) o pacchetti CMS.
L'IC è di solito eseguito da Team City in base al check-in, abbiamo una procedura di revisione del codice secondo la quale tutti i biglietti vengono effettuati nelle filiali e quindi sottoposti a peer review per la convalida e la correttezza / qualità prima del check in trunk (funziona bene).
Tuttavia, la distribuzione effettiva del codice è praticamente sempre tramite SVN, sia tramite un checkout di una versione taggata o più in generale uno Switch SVN. Questo è qualcosa di strano per me che stiamo usando il nostro repository come parte del processo di distribuzione.
La configurazione generalmente non cambia molto spesso, le uniche cose che saranno nei file di configurazione sono informazioni specifiche dell'ambiente. Tutto il resto è nel db.
Non fraintendetemi, funziona, funziona bene. Tuttavia, voglio provare a spingere per una generazione e distribuzione automatizzata. L'ho usato con Rails e Capistrano e per progetti personali usando Cygwin, Nant e SSH.
Ancora più importante, avrei bisogno di argomenti validi molto specifici per convincere i miei colleghi a utilizzare una build e una distribuzione automatizzate.
Oppure NON ci sono argomenti validi validi contro l'utilizzo specifico di SVN per la distribuzione in produzione?