dove mi trovo: riga di comando di LinuxSVN atomic commit how-to
Il problema che ho adesso:
A volte non ho potuto fare commit atomici (costituiti tutte le modifiche necessarie per un particolare biglietto/compito), perché nel repository sono presenti alcuni file, i cui contenuti variano a seconda degli ambienti di sviluppo locali.
Ad esempio: database.xml
(nome db, nome utente, password, ecc.). Modifico questo file nel mio ambiente locale, e ogni volta che ho bisogno di effettuare un commit/checkin ho manualmente elencato tutti i file/cartelle richiesti per il commit (escludendo questi file modificati localmente).
Forse si tratta di una decisione di progettazione sbagliata e database.xml
deve essere cancellato dal repository e ha cambiato per database.xml.template
(memorizzato in SVN), quindi questo file non verrà incluso a commettere fino a quando si esegue manualmente svn add
per questo? Forse è un approccio errato - per memorizzare tutte le informazioni dipendenti dall'ambiente nel repository - in questo caso possiamo rompere tutto commettendo una configurazione modificata, ad esempio ..
Come ho capito, la proprietà svn:ignore
non ha potuto questa situazione, perché può essere utilizzata solo per i file che non sono memorizzati nel repository ..
Come può essere risolto questo problema?
P.S .: Sto utilizzando Ubuntu e la maggior parte della pura linea di comando per SVN.
Sono d'accordo con mantenere un file '.template' in Subversion e la configurazione reale, versione modificata, solo localmente.È importante che gli sviluppatori non * * * modifichino il vero file di configurazione per scopi diversi dalla configurazione personale. Cioè, se una nuova opzione deve essere aggiunta al file, allora deve essere aggiunta al file '.template' e quindi ricreare il proprio file di configurazione al di fuori di essa (forse automatizzare la ricostruzione della configurazione da' .template' file con uno script per facilitare il lavoro). –
Sì, avrei database.xml.template in SVN, database.xml.override nei checkout locali e ignorato, e uno script per combinare i due per produrre database.xml. Almeno, lo farei se avessi il tempo di scrivere la sceneggiatura ;-) Altrimenti gli sviluppatori devono fare un'unione manuale in databaes.xml ogni volta che cambia database.xml.template. –
In effetti, se gli sviluppatori vogliono essere davvero fantasiosi, quindi possono fare database.xml.override di un collegamento fisico a un file che controllano la versione nel loro ramo personale del repository, in modo che anche la configurazione personale sia controllata. –