Jednym z najczęstszych wymagań w rozwoju projektu jest możliwość przeglądu modyfikacji. Warto przejrzeć różnice między dwiema wersjami tego samego pliku, czy też różnice między dwoma oddzielnymi plikami. TortoiseSVN posiada wbudowane narzędzie o nazwie TortoiseMerge do przeglądania różnic w plikach tekstowych. Do oglądania różnic plików graficznych, TortoiseSVN posiada również narzędzie o nazwie TortoiseIDiff. Oczywiście, można użyć własnego ulubionego programu porównującego, jeśli chcecie.
Jeśli chcecie zobaczyć, jakie zmiany sami dokonaliście w kopii roboczej, wystarczy skorzystać z menu kontekstowego eksploratora i wybrać → .
Jeśli chcecie zobaczyć co się zmieniło w linii głównej (podczas gdy pracujecie na gałęzi) lub konkretnej gałęzi (jeśli pracujecie na linii głównej), możecie skorzystać z menu kontekstowego eksploratora. Wystarczy przytrzymać klawisz Shift, podczas kliknięcia prawym przyciskiem myszy na pliku. A następnie wybrać → . W następnym oknie należy określić URL w repozytorium, z którym chcecie porównać lokalny plik.
Można również użyć przeglądarki repozytorium i wybrać dwa drzewa do porównania, można dwie etykiety, lub gałąź/etykietę i linię główną. Menu kontekstowe pozwala porównać je za pomocą „Porównanie folderów”.
. Czytajcie więcej wJeśli chcecie zobaczyć różnicę między określoną wersją i kopią roboczą, należy użyć okna dialogowego Dziennika wersji, wybierzcie interesującą Was wersję, a następnie opcję
z menu kontekstowego.Jeśli chcecie zobaczyć różnicę między ostatnią ostatnio zatwierdzoną wersją i kopią roboczą, przy założeniu, że kopia robocza nie została zmodyfikowana, wystarczy kliknąć prawym przyciskiem myszy na pliku. Następnie wybrać
→ . Zostanie wykonane porównanie między wersją przed "datą ostatniego zatwierdzenia" (jaką zapisano w kopii roboczej) oraz BAZĄ roboczą. Zostaną wyświetlone ostatnie zmiany wprowadzone do tego pliku by doprowadzić go do bieżącego stanu widocznego w kopii roboczej. Nie pokażą się zmiany nowsze niż w kopii roboczej.Jeśli chcecie zobaczyć różnicę pomiędzy dwiema wersjami, które są już zatwierdzone, skorzystajcie z okna dialogowego Dziennika wersji i wybierzcie dwie wersje, które chcecie porównać (przy użyciu zwykłego modyfikatora Ctrl). Następnie wybierzcie z menu kontekstowego.
Jeśli zrobiliście to z dziennika wersji dla folderu, pojawi się okno dialogowe Porównaj Wersje, pokazując listę zmienionych plików w tym folderze. Czytajcie więcej w „Porównanie folderów”.
Jeśli chcecie zobaczyć zmiany wprowadzone do wszystkich plików w określonej wersji w jednym widoku, można użyć wyjścia Unified-Diff (format poprawek GNU). Pokazuje on tylko różnice z kilkoma liniami kontekstu. Jest to trudniejsze do odczytania niż w wizualnej porównywarce plików, ale pokazuje wszystkie zmiany razem. W oknie dialogowym Dziennika wersji wybierzcie interesującą Was wersję, a następnie wybierzcie
z menu kontekstowego.Jeśli chcecie zobaczyć różnice między dwoma różnymi plikami, możecie to zrobić bezpośrednio w eksploratorze wybierając oba pliki (za pomocą zwykłego modyfikatora Ctrl). Następnie z menu kontekstowego Eksploratora wybierzcie → .
Jeśli pliki do porównwnia nie znajdują się w tym samym folderze, użyjcie polecenia Ctrl podczas kliknięcia.
→ by zaznaczyć pierwszy plik do porównania, następnie przejdźcie w eksploratorze do drugiego pliku i skorzystajcie z → . By usunąć zaznaczony plik, należy użyć polecenia → raz jeszcze, ale wciskając jednocześnie klawisz modyfikującyJeśli chcecie zobaczyć różnice pomiędzy plikiem z kopii roboczej, a plikiem w dowolnym repozytorium, możecie to zrobić bezpośrednio w Eksploratorze wybierając plik następnie przytrzymując klawisz Shift, podczas kliknięcia prawym przyciskiem myszy by uzyskać menu kontekstowe. Wybierzcie → . Możecie zrobić to samo dla folderu w kopii roboczej. TortoiseMerge pokazuje te różnice w ten sam sposób, jak plik poprawek - lista zmienionych plików, które można zobaczyć po jednym na raz.
Jeśli chcecie zobaczyć nie tylko różnice, ale także autora, wersję i datę, kiedy zmiany zostały wprowadzone, można połączyć porównanie i raporty adnotacji w oknie dialogowym dziennika wersji. Czytajcie „Różnice adnotacji” by poznać więcej szczegółów.
Wbudowane narzędzia dostarczane z TortoiseSVN nie obsługują wyświetlania różnic między hierarchiami katalogów. Ale jeśli macie zewnętrzne narzędzie, które ma takie możliwości, możecie go użyć w tym miejscu. W „Zewnętrzne narzędzia porównywania/scalania” mówimy o kilku narzędziach, których używaliśmy.
Jeśli skonfigurowano zewnętrzne narzędzie porównywania, można użyć Shift podczas wybierania polecenia Porównaj by skorzystać z alternatywnych narzędzi. Czytajcie „Ustawienia programów zewnętrznych”, aby dowiedzieć się na temat konfigurowania innych narzędzi porównania.
Czasem w życiu danego projektu można zmienić znaki końca linii z CRLF
do LF
, lub możecie zmienić wcięcia sekcji. Niestety działanie to oznaczy dużą liczbę linii jako zmienioną, chociaż nie wprowadza żadnych zmian znaczenia dla kodu. Wymienione tu opcje pomagają zarządzać takimi zmianami, jeśli chodzi o porównanie i stosowanie różnic. Zobaczycie te ustawienia w oknach dialogowych Scalanie i Adnotuj, jak również w ustawieniach TortoiseMerge.
Ignoruj zakończenia linii wyklucza zmiany, które wynikają wyłącznie z powodu różnicy w znaku końca linii.
Porównuj białe znaki dołącza wszystkie zmiany wcięcia i białe znaki w ramach linii jako dodawane/usuwane linie.
Ignoruj zmiany białych znaków wyklucza zmiany, które nastąpiły wyłącznie z powodu zmiany ilości lub rodzaju białych znaków, np. zmiany wcięcia lub zmiany tabulacji na spacje. Dodawanie białych znaków, gdzie nie było przedtem żadnego lub usuwanie wszystkich białych znaków jest nadal wyświetlane jako zmiana.
Ignoruj wszystkie zmiany białych znaków wyklucza wszystkie zmiany białych znaków.
Oczywiście, każda linia ze zmienioną treścią jest zawsze wliczana do porównania.
Po wybraniu dwóch drzew w przeglądarce repozytorium lub po wybraniu dwóch wersji folderu w oknie dziennika, można wykonać → .
To okno pokazuje listę wszystkich plików, które się zmieniły i pozwala porównać lub je lub adnotować indywidualnie za pomocą menu kontekstowego.
Można eksportować drzewo zmian, co jest przydatne, gdy trzeba wysłać komuś innemu swoją strukturę drzewa projektu, ale dołączając tylko pliki, które uległy zmianie. Operacja ta działa tylko na wybranych plikach, więc musisz wybrać interesujące Was pliki - zwykle oznacza, że wszystkie - a następnie → . Pojawi się monit o lokalizację do zapisania drzewa zmian.
Możecie także wyeksportować listę zmienionych plików do pliku tekstowego za pomocą → .
Jeśli chcecie wyeksportować listę plików oraz akcje (zmodyfikowany, dodany, usunięty), można to zrobić za pomocą → .
Przycisk u góry pozwala na zmianę kierunku porównania. Można pokazać że zmiany muszą mieć kierunek z punktu A do B, lub jeśli wolicie, od B do A.
Przyciski z numerami wersji można zmienić na inny zakres wersji. Po zmianie zakresu, lista elementów, które różnią się pomiędzy dwiema wersjami zostanie automatycznie zaktualizowana.
Jeśli lista plików jest bardzo długa, można użyć pola wyszukiwania do ograniczenia listy nazw plików zawierających określony tekst. Należy pamiętać, że używane jest proste wyszukiwanie tekstowe, więc jeśli chcesz ograniczyć listę do plików źródłowych w C powinieneś wpisać .c
, a nie *.c
.
Istnieje wiele dostępnych narzędzi do porównywania plików tekstowych, w tym własne TortoiseMerge, ale często sami chcemy zobaczyć, jak plik zmienił się plik obrazu. Dlatego stworzyliśmy TortoiseIDiff.
→ dla każdego z popularnych formatów plików obrazu uruchamia TortoiseIDiff by pokazać różnice obrazu. Domyślnie obrazy są wyświetlane obok siebie, ale można skorzystać z menu Widok lub paska narzędzi, aby przejść do widoku góra - dół, lub jeśli wolicie, możecie nałożyć obrazy i udawać, że korzystacie z wyświetlarki Lightbox.
Oczywiście można także powiększać i pomniejszać i przesuwać okno obrazu. Można również przesunąć obraz przeciągając go lewym klawiszem myszki. Jeśli wybierzecie Opcję Powiąż zdjęcia razem, a następnie wykonujecie przesuwanie (paski przewijania, kółko myszy) oba obrazy są połączone.
Pole informacyjne obrazu pokazuje szczegółowe informacje o pliku obrazu, takie jak rozmiar w pikselach, rozdzielczość i głębia kolorów. Jeśli to pole zasłania widok, użyjcie
→ aby je ukryć. Możecie uzyskać te same informacje w dymku po najechaniu myszką na pasku tytułu obrazu.Kiedy obrazy są nakładane, względna intensywność obrazów (alpha blend) jest kontrolowana przez suwak po lewej stronie. Możecie kliknąć w dowolnym miejscu na suwak, aby ustawić mieszanie bezpośrednio, lub przeciągać suwak, aby zmienić mieszanie interaktywnie. Ctrl+Shift-kółko by zmienić mieszanie.
Przycisk powyżej suwaka przełącza pomiędzy 0% i 100% krycia, a jeśli dwukrotnie kliknąć przycisk, mieszanie przełącza automatycznie co sekundę aż do momentu ponownego kliknięcia przycisku. Może to być przydatne przy poszukiwaniu wielu małych zmian.
Czasami chcecie zobaczyć różnicę, a nie mieszankę. Możecie mieć pliki obrazów dla dwóch wersji płytki drukowanej i chcecie sprawdzić, które ścieżki zostały zmienione. Jeśli wyłączycie tryb alfa blend, różnica będzie wyświetlana jako XOR z wartości koloru pikseli. Obszary niezmienione będą zupełnie białe, a zmiany będą kolorowe.
Jeśli chcecie porównać nietekstowe dokumenty, normalnie należałoby skorzystać z oprogramowania używanego do tworzenia dokumentu gdyż rozumie ono format pliku. Do najczęściej używanych Microsoft Office i Open Office mamy jednak pewne wsparcie dla wyświetlania różnic i TortoiseSVN zawiera skrypty wywoływane przy odpowiednich ustawieniach, gdy porównujemy pliki z dobrze znanymi rozszerzeniami. Możecie sprawdzić, które rozszerzenia plików są obsługiwane i dodawać własne, wchodząc w Program zewnętrzny.
→ i klikając w sekcjiJeśli zainstalowaliście wersję Click-to-Run pakietu Office 2010 i próbujecie porównać dokumenty może pojawić się komunikat o błędzie systemu Windows Script Host w stylu: „Składnik ActiveX nie może utworzyć obiektu : Word.Application”. Wydaje się, musicie użyć opartej na MSI wersji pakietu Office, aby uzyskać funkcjonalność porównywania.
Jeśli dostarczone przez nas narzędzia nie robią tego, czego potrzebujecie, spróbujcie jednego z wielu dostępnych programów open-source lub komercyjnych. Każdy ma swoje ulubione i ta lista wcale nie jest kompletna, ale zawiera kilka, które warto rozważyć:
WinMerge is a great open-source diff tool which can also handle directories.
Perforce jest komercyjnym RCS, ale można pobrać narzędzie porównywania/scalenia za darmo. Więcej informacji można uzyskać z Perforce.
KDiff3 jest darmowym narzędziem porównywania, które obsługuje także foldery. Można go pobrać stąd.
SourceGear Vault jest komercyjnym RCS, ale można pobrać narzędzie porównywania/scalenia za darmo. Więcej informacji można uzyskać z SourceGear.
ExamDiff Standard jest programem bezpłatnym. Obsługuje on pliki, ale nie foldery. ExamDiff Pro jest shareware i dodaje kilka bajerów w tym porównywanie katalogu i możliwość edycji. W obu smakach, wersja 3.2 i powyżej mogą obsługiwać unicode. Można je pobrać z PrestoSoft.
Podobnie do ExamDiff Pro jest to wspaniałe narzędzie shareware do porównywania obsługujące zarówno foldery jak i unikod. Do pobrania ze Scooter Software.
Araxis Merge jest użytecznym komercyjnym narzędziem do porównywania i scalania zarówno plików i folderów. Wykonuje ono trójdrożnego porównania podczas scalania i ma wiązania synchronizacji do użycia jeśli zmienicie kolejność funkcji. Pobrać go można z Araxis.
Czytaj „Ustawienia programów zewnętrznych” by uzyskać informacje jak skonfigurować TortoiseSVN by używać tych narzędzi.