2009-10-13 4 views
20

Sto configurando TeamCity e mi sto chiedendo cosa dovrebbe essere usato come VCS Root. repositoryPer dove dovrei puntare la radice VCS di TeamCity?

mio svn si trova a http://obfuscatedserver/svn/main/MyProject1/

Devo impostare il VCS Radice a http://obfuscatedserver/svn/main/MyProject1/ o utilizzare la cartella tronco a http://obfuscatedserver/svn/main/MyProject1/trunk/?

In questo momento sono non utilizzando la cartella trunk e ho dovuto impostare Build Runner "Build file path" su "trunk/MyProject1.proj" (usando msbuild).

Quale posizione è quella appropriata?

risposta

24

Si consiglia di utilizzare http://obfuscatedserver/svn/main/ come VCS Root e quindi di limitare le cartelle che vengono estratte utilizzando le regole di checkout.

Aggiungere le seguenti regole checkout (sezione 2 della configurazione di build):

+:/MyProject1/trunk 

Si avrà probabilmente bisogno anche di aggiornare la posizione del file MSBuild per

MyProject1/trunk/MyProject1.proj 

e impostare il lavoro directory per

MyProject1/trunk 

Questo fa sembrare un sacco di lavoro, ma la prossima volta che si desidera aggiungi una nuova build, non devi creare un nuovo VCSroot.

Tuttavia, il vero vantaggio arriva quando TeamCity esegue il polling del repository SVN. Polling il tuo repository una volta scoprirà tutte le modifiche per tutte le tue build. Questo è particolarmente importante se il tuo repository è ospitato da qualche parte come sourceforge o googlecode. Certamente non vorrai fare il polling dei loro server per ogni build che hai configurato.

Inoltre, se il repository è ospitato da una terza parte, è possibile impostare l'intervallo di controllo di vcsRoot su una volta all'ora o simile. Puoi sempre chiedere a teamcity di verificare la presenza di modifiche in sospeso dal menu delle azioni su una qualsiasi delle pagine di panoramica della build, se non puoi essere disturbato in attesa dell'ora che trascorre.

+0

Ho dovuto mettere un po 'di pazienza sulla distribuzione del nostro server CI, ma una volta ottenuto il tempo per finirlo, proverò il tuo suggerimento. –

+4

È possibile rimappare la destinazione nella regola di checkout in questo modo: '+:/MyProject1/trunk => .'. Verificherà il contenuto del trunk come cartella principale per la build e quindi la posizione del file msbuild è semplicemente 'MyProject1.proj'. Inoltre, è possibile lasciare vuota la directory di lavoro. – timomeinen

2

Si dovrebbe usare .../trunk/come accelererà il checkout, altrimenti TeamCity otterrà tutti i rami e che probabilmente non sono necessari per la compilazione.

+1

È possibile risolvere il problema di ottenere rami, tag, ecc., Modificando le regole di checkout. – dthrasher

2

Fino ad oggi, ho usato ../trunk come root. Questo è bello perché nel mio caso tutti i progetti si trovano sotto il bagagliaio e quindi posso fare facilmente il checkout completo.

Ma la funzione di etichettatura non funziona perché è necessario utilizzare una regola come "trunk => tag" e una radice che è un padre di queste directory. Dato che mi piacerebbe etichettare ogni versione di release, ora penso di passare a un layout simile a quello suggerito da CrazyCoder.