2009-10-06 17 views
11

Zastanawiam się nad niektórymi strategiami rozgałęzień (tworzenie oddziałów na funkcję, być może na programistę, ponieważ jesteśmy małą grupą) i zastanawialiśmy się, czy ktoś nie napotkał żadnych problemów. Czy tworzenie gałęzi zajmuje dużo miejsca?Rozgałęzianie i przestrzeń dyskowa TFS

Odpowiedz

13

Kiedy ostatnio wyglądałem, TFS używa kopiowania przy zapisie, co oznacza, że ​​nie zwiększysz miejsca na dysku, dopóki nie zmienisz plików. To trochę jak korzystanie z dowiązań symbolicznych, dopóki nie zmienisz rzeczy.

+1

+1: Moje zrozumienie. Oddział zajmie miejsce na twojej lokalnej stacji roboczej, ale zawsze możesz osłonić gałąź, jeśli nie chcesz jej widzieć (co zasadniczo usuwa ją z obszaru roboczego) i przycinać ją, gdy już to zrobi i ponownie włączy. – TrueWill

+0

nie można znaleźć żadnych informacji na ten temat, więc jeśli ktoś natknie się na jakiekolwiek linki, skieruj mnie do nich. Dzięki za odpowiedź. –

5

James jest w zasadzie poprawny. Dla pełniejszego odpowiedź, musimy zacząć od postu Bucka z tyłu w roku 2006: http://blogs.msdn.com/buckh/archive/2006/02/22/tfs_size_estimation.aspx

Każdy nowy wiersz w lokalnej tabeli wersja dodaje około 520 bajtów (jeden wiersz zostanie dodana do każdego obszaru roboczego, który dostaje nowo dodane pozycja, a rozmiar jest zdominowany przez lokalną kolumnę ścieżki). Jeśli masz 100 obszarów roboczych, które otrzymają nowo dodany element, baza danych wzrośnie o 52 KB. Jeśli dodasz 1000 nowych plików o średniej wielkości (połączenie plików źródłowych, plików binarnych, obrazów itp.) I uzyskasz 100 obszarów roboczych, baza danych kontroli wersji powiększy się o około 112 MB (60 KB * 1000 + 520 * 1000 * 100) .

Możemy pominąć liczbę 60 KB, ponieważ elementy rozgałęzione nie duplikują zawartości pliku. (Nie jest to "copy-on-write", James - O (N) ilość metadanych musi być obliczona i przechowywana podczas samej operacji rozgałęzienia, w porównaniu z systemami takimi jak git, które według mnie działają w O (1) - ale masz rację, że nowy element wskazuje ten sam rekord w tbl_Content jako element źródłowy, dopóki nie zostanie poddany edycji). Pozostaje nam tylko współczynnik 520 * num_workspaces * files_per_workspace. Na serwerze testowym MS istnieje około 2 miliardów wierszy w tbl_LocalVersion, ale w opisanej przez siebie małej grupie powinno to być całkowicie pomijalne.

Blogiem o czymś, o czym Buck nie wspomina, jest historia łączenia. Jeśli przyjmiesz przepływ pracy obciążony gałęzią i pozostaniesz przy nim przez kilka cykli programistycznych, prawdopodobnie tbl_MergeHistory wzrośnie prawie tak samo, jak tbl_LocalVersion. Ponownie, wątpię, by rejestrował się nawet na radarze małego zespołu, ale na dużych instalacjach można łatwo zgromadzić setki milionów wierszy. Powiedział, że każdy rząd jest znacznie mniejszy, ponieważ nie ma pól nvarchar (260).

Powiązane problemy