Domanda

Usiamo un CruiseControl.Net/NAnt/Subversion stack per IC.Fai una nuova estrazione per ogni build è troppo in termini di tempo, quindi attualmente abbiamo solo fare un aggiornamento su una copia di lavoro.Tuttavia, questo lascia la possibilità che i file orfani potrebbe rimanere nella copia di lavoro, dopo essere stato eliminato nel controllo del codice sorgente.Abbiamo provato ad usare il NAnt eliminare le attività solo per rimuovere tutti i file del codice sorgente prima di un aggiornamento, ma questo può danneggiare la copia di lavoro.Qualcuno conosce un modo veloce per eseguire una build su un piano pulito e up-to-data copia di lavoro?EDIT:Siamo su SVN 1.3.2

È stato utile?

Soluzione

Se fai solo un 'aggiornamento', SVN eliminare tutti i file che sono stati cancellati nel controllo del codice sorgente.Tuttavia i file che sono stati creati durante il processo di build potrebbe essere ancora lì e potrebbe interferire con la nuova build.Non so se SVN è un comando per eliminare loro, ma credo che si potrebbe fare con un po ' di script, SVN sicuramente potrebbe dirvi che i file sono sotto il controllo del codice sorgente e quali non lo sono.

Altri suggerimenti

Abbiamo avuto un problema simile con il nostro CC attuazione.

La nostra soluzione...Avevamo già predisposto un 3:00 AM nightly build che ha eseguito più in esecuzione di test di integrazione, in aggiunta alla base di unit test.Abbiamo semplicemente deciso di fare questo 3:00 AM creare una nuova generazione su un albero.Come è stato il cuore della notte, è raramente interessata a chiunque.Tutti gli altri "normali" check-in corse incrementale.

Se ci sono file orfani a sinistra nella copia di lavoro, dopo aver fatto un svn update poi c'è un bug nella vostra versione Subversion.

Si potrebbe fare una daily build completa, e lasciare il costruire sul check-in è.Inoltre, per la distribuzione costruisce, è probabilmente una buona idea di utilizzare sempre una pulizia completa di costruire.

L'unico modo che posso pensare è avere due copie sul server di generazione.Prima si aggiorna in prima posizione.Si elimina la seconda posizione.Copia la prima alla seconda e poi costruire in seconda posizione.In questo modo si inizia sempre da una nuova generazione.

Si potrebbe desiderare di guardare perché il checkout sta prendendo così tanto tempo.Ho usato la stessa buildserver stack e non ha mai avuto problemi con questo.Subversion di solito ha meno tempo di costruire.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top