Domanda

Ho riflettuto su alcune strategie di ramificazione (creazione di sportelli ogni caratteristica, forse per sviluppatore visto che siamo un piccolo gruppo) e chiedevo se qualcuno aveva sperimentato problemi. Ha la creazione di una filiale occupa molto spazio?

È stato utile?

Soluzione

L'ultima volta che ho guardato, TFS utilizza copy-on-write, il che significa che non sarà possibile aumentare lo spazio su disco fino a quando si cambia i file. È un po 'come l'utilizzo di link simbolici fino a quando è necessario cambiare le cose.

Altri suggerimenti

James è fondamentalmente corretto. Per una risposta più completa, abbiamo bisogno di iniziare con il post di Buck da nel 2006: http://blogs.msdn.com/buckh/archive/2006/02/22/tfs_size_estimation.aspx

  

Ogni nuova riga nella tabella versione locale aggiunge circa 520 byte (una riga viene aggiunto per ogni area di lavoro che ottiene l'elemento appena aggiunto, e la dimensione è dominata dalla colonna percorso locale). Se si dispone di 100 aree di lavoro che ottengono la voce appena aggiunta, il database crescerà di 52 KB. Se si aggiunge 1.000 nuovi file di dimensione media (mix di file sorgente, i binari, immagini, ecc) e hanno 100 spazi di lavoro farli, il database di controllo di versione cresce di circa 112 MB (60 KB * 1.000 + 520 * 1000 * 100) .

Possiamo omettere la cifra di 60 KB in quanto elementi ramificati non duplicare il contenuto dei file. (Non è abbastanza "copy-on-write," James - un O (N) quantità di metadati deve essere calcolato e memorizzato durante l'operazione ramo stesso, contro sistemi come git che credo ramo in O (1) - ma siete sulla strada giusta che il nuovo elemento indica lo stesso record nel tbl_Content come elemento di origine finché non è modificato). Questo ci lascia con solo il fattore 520 * num_workspaces * files_per_workspace. Sul server MS dogfood ci sono qualcosa come 2 miliardi di righe in tbl_LocalVersion, ma in un piccolo gruppo di auto-descritto dovrebbe essere assolutamente trascurabile.

blog

Qualcosa di Buck non menzionare è unire storia. Se si adotta un flusso di lavoro ramo-pesante e bastone con esso attraverso diversi cicli di sviluppo, è probabile tbl_MergeHistory crescerà grande quasi quanto tbl_LocalVersion. Anche in questo caso, dubito che sarà anche registrarsi sul radar una piccola squadra, ma su grandi installazioni si può facilmente accumulare centinaia di milioni di righe. Detto questo, ogni riga è molto più piccolo poiché non ci sono nvarchar (260) campi.

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