Czasami trzeba wiedzieć, gdzie gałęzie i etykiety zostały pobrane z linii głównej a idealnym sposobem by obejrzeć tego typu informacje jest postać wykresu lub drzewa. Należy wtedy użyć →
To polecenie analizuje historię zmian i próbuje stworzyć drzewo pokazujące miejsca, w których zostały pobrane kopie, i kiedy gałęzie/etykiety zostały usunięte.
W celu wygenerowania wykresu, TortoiseSVN musi pobrać wszystkie opisy zmian z głównego repozytorium. Oczywiście może to trwać wiele minut, nawet z repozytorium zawierającego kilka tysięcy wersji, w zależności od szybkości serwera, przepustowość sieci, itd. Jak wypróbujecie to na czymś w rodzaju projektu Apache, który ma obecnie ponad 500.000 wersji, można sobie poczekać czas jakiś.
Dobrą wiadomością jest to, że jeżeli używacie buforowania dziennika, tylko cierpieć tą zwłokę to raz. Po tym, dane dziennika odbywa się lokalnie. Buforowanie dziennika jest włączone w ustawieniach TortoiseSVN.
Każdy węzeł wykresu przedstawia zmiany wersję w repozytorium, gdzie coś się zmieniło w oglądanym drzewie. Różne rodzaje węzłów można odróżnić na podstawie kształtu i koloru. Kształty są stałe, a kolory można ustawić za pomocą
→Elementy, które zostały dodane lub utworzone przez skopiowanie innego pliku/folderu wyświetlane są przy użyciu zaokrąglonego prostokąta. Domyślnym kolorem jest zielony. Etykiety i linie główne są traktowane jako szczególny przypadek i używa się innego koloru, w zależności od
→ .Elementy usunięte np. gałąź, która nie jest już wymagana, są wyświetlane przy użyciu ośmiokąt (prostokąt z obciętymi narożnikami). Domyślny jest kolor czerwony.
Elementy ze zmienioną nazwą są również wyświetlone przy użyciu ośmiokąta, ale domyślnym kolorem jest niebieski.
Wykres jest zwykle ograniczony do pokazywania punktów gałęzi, ale często przydaje się możliwość obejrzenia odpowiednich wersji HEAD również dla każdej gałęzi. Jeśli wybierzesz Pokaż wersje HEAD, każdy węzeł wersji HEAD pojawi się jako elipsa. Należy pamiętać, że HEAD odnosi się tutaj do ostatniej wersji zatwierdzonej na tej ścieżce, nie zaś wersji HEAD repozytorium.
Jeśli wywołuje się wykres wersji z kopii roboczej, można wybrać wyświetlanie wersji BASE na wykresie używając Pokaż wersję kopii roboczej, co zaznacza węzeł BASE pogrubionym konturem.
Jeśli wywołuje się na wykres wersji z kopii roboczej, można wybrać, aby pokazać dodatkowy węzeł reprezentujący zmodyfikowaną kopię roboczą za pomocą Pokaż modyfikacje kopii roboczej. Jest to eliptyczny węzeł z pogrubionym domyślnie czerwonym konturem.
Wszystkie inne elementy pokazywane są przy użyciu zwykłego prostokąta.
Zauważcie, że domyślnie wykres pokazuje tylko punkty, w których elementy zostały dodane, skopiowane lub usunięte. Pokazanie wszystkich zmian projektu generuje bardzo duży wykres dla przypadków nietrywialnych. Jeśli naprawdę chcecie zobaczyć wszystkie wersje, gdzie dokonano zmian, jest możliwość wykonania tego w menu Widok i na pasku narzędzi.
Widok domyślny (wyłączone grupowanie) rozmieszcza węzły tak, aby ich pozycje pionowe były w ścisłym porządku wersji, jest zatem wizualna wskazówka odnośnie kolejności, w jakiej wykonano rzeczy. W przypadku, gdy dwa węzły są w tej samej kolumnie porządek jest oczywisty. Kiedy dwa węzły znajdują się w sąsiadujących kolumnach przesunięcie jest o wiele mniejsze, ponieważ nie ma potrzeby, aby zapobiec nakładaniu się węzłów, stąd kolejność jest tu nieco mniej oczywista. Takie optymalizacje są niezbędne do utrzymania złożonych wykresów do rozsądnych rozmiarach. Należy pamiętać, że porządkowanie używa krawędzi węzła na starszej stronie jako punkt odniesienia, czyli dolnej krawędzi węzła gdy wykres jest pokazany od najstarszych węzłów na dole. Krawędź odniesienia jest istotna, ponieważ kształty węzłów nie są tej samej wysokości.
Ponieważ wykres wersji jest często dość skomplikowany, istnieje kilka funkcji, które mogą być wykorzystywane do dostosowania widoku wedle upodobań. Są one dostępne w menu Widok i pasku narzędzi.
Domyślne zachowanie (wyłączone grupowanie) ma wszystkie wiersze posortowane ściśle według wersji. W rezultacie, długowieczne gałęzie z nielicznymi zatwierdzeniami zajmują całą kolumnę dla tylko kilku zmian i wykres staje się bardzo szeroki.
Ten tryb grupuje zmiany według gałęzi, tak że nie ma globalnego przeglądu wersji: Kolejne wersje na gałęzi wyświetlane są (często) kolejnych liniach. Gałęzie podrzędne jednak są ułożone w taki sposób, że późniejsze gałęzie pojawiają się w tej samej kolumnie powyżej wcześniejszych gałęzi dla utrzymania niewielkiej szerokości wykresu. W rezultacie, dany wiersz może zawierać zmiany z różnych wersji.
Zwykle wykres przedstawia najstarszą wersję na dole, a drzewo rośnie w górę. Użyj tej opcji do zmiany kierunku wzrostu na z góry w dół.
Gdy wykres jest podzielony na kilka mniejszych drzew, drzewa mogą pojawić się zarówno w naturalnym porządku wersji, lub wyrównane do dolnej części okna, w zależności od tego, czy używacie opcji Grupowanie gałęziami. Użyjcie tej opcji do wskazania wzrostu wszystkich drzew od góry.
Ta opcja jest zazwyczaj włączona i unika pokazuje wykres z wieloma komplikującymi widok przecięciami linii. Jednak może to również powodować że kolumny ustawiają się w mniej logicznych miejscach, na przykład w ukośną linię, a nie w kolumnie, a wykres może zajmować większą powierzchnię. Jeśli jest to problem, możecie wyłączyć tę opcję z menu Widok.
Długie nazwy ścieżek mogą zająć dużo miejsca i sprawiają, że prostokąt węzła jest bardzo duży. Użyjcie tej opcji, aby pokazać tylko zmienione części ścieżki, zastępując część wspólną kropkami. Na przykład jeśli tworzycie gałąź /branches/1.2.x/doc/html
z /trunk/doc/html
to gałąź mogłaby być przedstawiona w zwartej formie /branches/1.2.x/..
, gdyż ostatnie dwa poziomy, doc
i html
nie zmieniły się.
Robi dokładnie to, czego oczekujecie i pokazuje każdą wersję, w której coś (w rozrysowywanym drzewie) uległo zmianie. Dla długiej historii może to dać naprawdę ogromny wykres.
Gwarantuje to, że najnowsza wersja dla każdej gałęzi jest zawsze widoczna na wykresie.
Kiedy jest tworzona gałąź/etykieta, domyślnym zachowaniem jest pokazanie gałęzi jako pobranej z ostatniego węzła, w którym dokonano zmiany. Ściśle mówiąc jest to niewłaściwe, gdyż gałęzie są wykonane najczęściej z obecnej wersji HEAD, a nie określonej wersji. Jest zatem możliwe, aby pokazać bardziej poprawną (ale mniej przydatną) wersję, która została wykorzystana do utworzenia kopii. Zauważcie, że ta wersja może być młodsza od wersji HEAD źródła gałęzi.
Jeżeli projekt ma wiele etykiet, pokazując każdą z nich jako oddzielny węzeł na wykresie zajmuje dużo miejsca i ukrywa bardziej interesujące struktury gałęzi rozwojowych. W tym samym czasie być może trzeba mieć łatwy dostęp do treści etykiety, dzięki czemu można porównać wersje. Ta opcja ukrywa węzły etykiet a pokazuje je za to w dymku dla węzła, z którego zostały skopiowane. Ikona etykiety z prawej strony z węzła źródłowego wskazuje, że zostały wykonane etykiety. To znacznie upraszcza widok.
Zauważcie, że jeśli etykieta jest sama używany jako źródło kopii, być może nowej gałęzi opartej na etykiecie, to etykieta pojawi się jako osobny węzeł, a nie zwinięta.
Ukrywa ścieżki, które już nie występują w wersji HEAD repozytorium, np. usunięte gałęzie.
Jeśli wybraliście opcję Zwiń etykiety, wtedy usunięte gałęzie, z których zostały wzięte etykiety nadal będą wyświetlane, w przeciwnym razie etykiety również znikną. Ostatnia wersja, która została zaetykietowana pojawi się w kolorze używanym dla usuniętych węzłów zamiast pokazywać oddzielną wersję usunięcia.
Jeśli wybierzesz opcję Ukryj etykiety to te gałęzie ponownie znikną, ponieważ nie są potrzebne do pokazania etykiet.
Ukrywa gałęzie w przypadku braku zmian zatwierdzonych dla odpowiedniego pliku lub podkatalogu. To nie musi oznaczać, że gałąź nie była używana, tylko, że nie dokonano żadnych zmian na tej jej części.
Oznaczenia wersji na wykresie, która odpowiada wersji aktualizującej element, dla którego pobrano wykres. Jeśli właśnie nastąpiła aktualizacja, będzie to HEAD, ale jeśli inni zatwierdzili zmiany od waszej ostatniej aktualizacji KR może być kilka wersji niżej. Węzeł jest oznaczony, przez nadanie mu pogrubionego konturu.
Jeśli KR zawiera lokalne zmiany, opcja ta zwraca go jako oddzielny węzeł eliptyczny, powiązany do węzła z którego KR otrzymała ostatnią aktualizację. Domyślnym kolorem konturu jest czerwony. Być może trzeba odświeżyć wykres używając F5 by uchwycić ostatnie zmiany.
Czasami wykres wersji zawiera więcej wersji niż chcesz zobaczyć. Opcja ta otwiera okno dialogowe, które pozwala na ograniczenie wyświetlanego zakresu wersji i ukrycie poszczególnych ścieżek według nazwy.
Po ukryciu szczególnej ścieżki, której węzeł ma węzły potomne, dzieci pojawią się jako oddzielne drzewo. Jeśli chcecie, aby ukryć wszystkie dzieci, użyjcie pola wyboru Usuń całe poddrzewo(-a).
W przypadku, gdy wykres zawiera kilka drzew, czasem jest przydatne skorzystanie z alternatywnych kolorów tła, aby pomóc rozróżnić drzewa.
Wyświetla mały obrazek całego wykresu, z bieżącym oknie widoku jako prostokątem, który można przeciągać. Pozwala to na poruszanie się łatwiej po wykresie. Należy pamiętać, że dla wykresów bardzo dużego grafu przegląd może stać się bezużyteczny ze względu na ekstremalny współczynnik powiększenia i dlatego nie będzie wyświetlany w takich przypadkach.
Aby łatwiej poruszać się po dużym wykresie, należy użyć okna przeglądu. Pokazuje ono cały wykres w małym okienku z podświetloną aktualnie wyświetlaną częścią. Możecie przeciągać zaznaczony obszar by zmienić wyświetlany region.
Data aktualizacji, autor i komentarze wyświetlane są w oknie podpowiedzi gdy wskaźnika myszy przesunie się nad polem zmian.
Jeśli wybierzecie dwie zmiany (Użyjcie Ctrl-kliknięcia lewym przyciskiem myszy), można użyć menu kontekstowego, aby pokazać różnice pomiędzy tymi wersjami. Możecie wybrać, wyświetlanie różnic w punktach utworzenia gałęzi, ale zwykle będziecie chcieli pokazać różnice w punktach końcowych gałęzi, tj. w wersji HEAD.
Możecie zobaczyć różnice pliku różnicowym Unified-Diff, który pokazuje wszystkie różnice w pojedynczym pliku, przy minimalnym kontekście. Jeśli zdecydujecie się na Kliknięcie dwukrotne na nazwie pliku pozwala załadować obie wersje pliku i porównać je za pomocą narzędzia do wizualnego porównywania.
→ zostanie wyświetlona lista zmienionych plików.Jeśli klikniesz prawym przyciskiem myszy na wersji można użyć → , aby wyświetlić historię.
Można również scalić zmiany w wybranej wersji(-ach) do innej kopii roboczej. Okno wyboru folderu pozwala wybrać kopię roboczą do scalenia, ale po tym nie ma okna dialogowego potwierdzenia, ani okazji przetestowania scalenia. Jest to dobry pomysł, aby scalić do niezmodyfikowanej kopii roboczej, dzięki czemu można cofnąć zmiany, jeśli nie wyjdzie! Jest to przydatna funkcja, jeśli chcesz scalić wybrane wersje z jednej gałęzi do drugiej.
Początkujący użytkownicy mogą być zaskoczeni faktem, że wykres wersji pokazuje coś, co nie pasuje do modelu myślowego użytkownika. Jeśli wersja zmienia wiele kopii lub gałęzi pliku lub folderu, na przykład, niech będzie wiele węzłów dla pojedynczej wersji. Jest to dobra praktyka, aby rozpocząć od lewej opcji na pasku narzędzi i dostosować wykres krok po kroku, aż przybliży się do modelu myślowego.
Wszystkie opcje filtrowania usiłują stracić tak mało informacji, jak to możliwe. Może to powodować że niektóre węzły zmienią kolor, na przykład. Gdy wynik jest niepoprawny, wycofajcie ostatnią operację filtrowania i spróbujcie zrozumieć, co jest specjalnego w danej wersji lub gałęzi. W większości przypadków początkowo oczekiwany wynik operacji filtrowania będzie niedokładny lub mylący.
Jeśli chcecie sprawdzić ponownie serwer by wczytać nowe informacje, możesz po prostu odświeżyć widok przy użyciu F5. Jeśli używacie bufora dziennika (domyślnie włączony), zostanie sprawdzone repozytorium odnośnie nowszych zatwierdzeń i pobierane są tylko nowe. Jeśli bufor dziennika był w trybie offline, to nastąpi również próba powrotu do trybu online.
Jeśli używasz bufora dziennika i uważasz, że treści wiadomości lub autor może ulec zmianie, należy użyć okna dziennika, aby odświeżyć potrzebne wiadomości. Ponieważ wykres wersji działa z korzenia repozytorium, trzeba by unieważnić całą zawartość bufora dziennika a uzupełnianie może potrwać bardzo długo.
Duże drzewo może być trudne w nawigacji i czasami chcesz ukryć jego części, lub rozbić go na las mniejszych drzew. Jeśli po najechaniu myszką na punkt, w którym węzeł łącza wchodzi lub opuszcza węzeł zostanie wyświetlony jeden lub więcej rozwijalnych przycisków, które pozwalają zrobienie tego.
Kliknijcie na minus, aby zwinąć dołączone poddrzewa.
Kliknijcie na przycisk plus aby rozwinąć zwinięte drzewo. Kiedy drzewo jest zwinięte, ten przycisk jest widoczny by wskazać ukryte poddrzewa.
Kliknijcie na przycisku z krzyżykiem, aby podzielić dołączone poddrzewa i pokazać je jako oddzielne drzewa na wykresie.
Kliknijcie przycisk koła aby ponownie połączyć podzielone drzewa. Gdy drzewo zostało podzielone, ten przycisk jest widoczny, aby wskazać, że istnieje osobne poddrzewo.
Kliknijcie na tle wykresu by wywołać główne menu kontekstowe, które oferuje opcje Rozwiń wszystko i Połącz wszystko. Jeśli żadna gałąź nie została zwinięta lub rozdzielona, menu kontekstowe nie pojawi się.