2010-10-20 6 views
5

desidero utilizzare la nuova funzione di check-in gated di TFS 2010.Gated Checkins in TFS2010

Ho circa 10 soluzioni, che condividono tutti come una dipendenza di una libreria-codice condiviso proprietario.

La mia struttura è:

TeamProj/SharedCode 
TeamProj/Proj1 
TeamProj/Proj2 
TeamProj/Proj3 
........ 

La domanda che ho è, come posso set-off di un'integrazione di tutti i progetti che hanno il progetto SharedCode come una dipendenza?

È possibile che qualcuno possa apportare modifiche improvvise e non esserne a conoscenza finché uno degli altri progetti non viene aperto/costruito manualmente.

Voglio solo attivare una grande integrazione quando si effettuano check-in sulla cartella SharedCode.

Il problema è che se mappo i percorsi di origine richiesti per eseguire effettivamente le build per gli altri progetti, i check-in vengono prelevati automaticamente anche da tutti i progetti.

Come posso avere una cartella controllata con check-gated che è indipendente dalla sorgente effettivamente richiesta per eseguire una compilazione?

Cheers, Dave

risposta

2

Se ho capito bene, si desidera creare una definizione di compilazione, come il check-gated che costruisce TeamProj/Proj1, TeamProj/Proj2, TeamProj/Proj3 quando un file sorgente in TeamProj/SharedCode è cambiato?

In questo caso, una soluzione che mi viene in mente è la seguente:

  1. Creare la definizione di compilazione con cartella di origine solo TeamProj/SharedCode.
  2. Modificare il modello di build per eseguire un TFS GET per le altre cartelle
  3. Modificare il modello di build per creare tutte e tre le soluzioni Proj {1,2,3}, non la soluzione SharedCode.

È questo quello che vuoi?

+0

Mate: sembra perfetto: puoi fornirmi ulteriori informazioni su come eseguire un TFS GET? –

+0

Certo che posso, vedere http://www.msbuildextensionpack.com/ per una soluzione di msbuild (attività di estensione msbuild). Quello di cui hai bisogno è un'attività . Per i nuovi modelli di build basati su workflow tfs2010, non ho ancora una soluzione, ma tornerò più tardi, poiché abbiamo anche bisogno di un checkout aggiuntivo (non abbastanza getLatest, come è necessario, ma la differenza è minima). – eFloh