2010-08-02 24 views
5

Abbiamo più di 50 progetti divisi in 2 alberi di soluzione gestiti da TFS (Versione: Visual Studio 2008/TFS RTM (9.0.21022.8)).Best practice per condividere progetti tra alberi di soluzione (MSVS 2008 e MSVS 2010)

30+ progetti Visual Studio 2008 progetti e altri sono Visual Studio 2010

Progetti d'uso di alcune assemblee anziani tramite i riferimenti a file binari.

Durante lo sviluppo di nuovi progetti, è necessario apportare modifiche agli assembly precedenti, pertanto è necessario mantenere aperte contemporaneamente due istanze MSVS.

C'è un modo per condividere sorgenti compilabili con TFS tra due alberi di soluzione di studi diversi? O aggiorneremo l'albero delle soluzioni 2008 al 2010? TFS 2008 supporta progetti condivisi (o potrebbe essere necessario aggiornarli)?

Grazie in anticipo!

risposta

6

Andrew:

Prima di tutto, si viola un paio di "buone pratiche" per ottenere questo risultato, ma il pragmatismo è dove le migliori pratiche incontra il mondo reale.

Quello che facciamo è questa:

  1. Tutti i binari vengono controllati per TFS all'interno di una cartella LocalBin che consolida tutti i nostri binari.
  2. Tutti gli assembly condivisi si trovano all'interno di una cartella denominata LocalBin/SharedBin
  3. La cartella SharedBin è diramata a una cartella SharedBin di livello superiore all'interno dei progetti del team che consuma.
  4. In una build principale completata correttamente, il LocalBin/Sharedbin viene unito alle cartelle SharedBin dei progetti.

Si finisce per essere qualcosa di simile:

$/ProjectA/Main/Localbin/SharedBin è ramificata a $/ProjectB/Main/SharedBin e $/ProjectB/Dev/Sharedbin (così come le cartelle equivalenti in $/ProjectC, $/ProjectD eccetera).

Facciamo questa condivisione solo quando abbiamo una build MAIN di successo e la build è responsabile della fusione non solo con gli altri progetti MAIN branch, ma anche con i progetti di ramo DEV, quindi sono aggiornati.

Abbiamo accarezzato l'idea di copiare i binari in una posizione di rete condivisa dopo una build di successo e di avere una convenzione per fare riferimento a quei binari in quella condivisione di rete, ma questo processo funziona bene per noi oggi, e noi stai detestando di apportare modifiche a questo punto (cose più importanti accadono per ora).

Questa è una di quelle cose che è difficile descrivere completamente in un post, quindi se hai altre domande, sarei felice di provare a rispondere.

BTW, la nostra soluzione è stata creata ed è in esecuzione in TFS2008 con migliaia di file di progetto e probabilmente milioni di righe di codice. Aumenta il tempo di costruzione a causa dell'unione e aumenta la quantità di spazio utilizzato nel repository, ma entrambi sono stati gestibili finora.

+1

Grazie per la soluzione. Mi ci vorrà del tempo per investigare! –

Problemi correlati