Ignorowanie zasobów w kontroli wersji

Podczas synchronizowania zasobów może się okazać, że niektóre z nich nie powinny zostać zatwierdzone do repozytorium. Dostępne są dwie funkcje ignorowania umożliwiające użytkownikowi określenie, które zasoby powinny zostać wykluczone z operacji aktualizacji i zatwierdzania.

Pierwsza z nich to funkcja globalnego ignorowania, która jest udostępniana przez środowisko robocze. Druga możliwość to użycie funkcji ignorowania w systemie CVS, która odczytuje treść specjalnego pliku .cvsignore w celu określenia zasobów, które mają zostać zignorowane.

Powody ignorowania plików podczas synchronizacji

Istnieje wiele plików, których użytkownik może nie chcieć zatwierdzić do repozytorium. Na przykład edytory zewnętrzne mogą tworzyć pliki tymczasowe w projekcie użytkownika. Podczas kompilowania plików .java tworzone są pliki .class, natomiast wynikiem wielu operacji budowania są pliki binarne. Łącznie te pliki mogą być całkiem duże. Ponadto pliki tego typu mogą być ponownie generowane podczas operacji budowania, co prowadzi do powstania wielu zmian wychodzących. Najczęściej nie są to pliki współużytkowane z innymi członkami zespołu lub warte przechowywania w repozytorium.   

Funkcja globalnego ignorowania

Funkcja globalnego ignorowania jest udostępniana przez środowisko robocze poprzez stronę preferencji zespołu. Znajduje się na niej lista wzorców plików, do których będą dopasowywane zasoby, zanim zostaną uznane za kandydatów do objęcia kontrolą wersji. Wzorce te mogą zawierać znaki zastępcze "*" i "?". Symbol gwiazdki (*) reprezentuje dowolny łańcuch znaków (liczba znaków może wynosić zero lub więcej). Znak zapytania "?" oznacza pojedynczy znak. Można na przykład określić wzorzec "*~", który spowoduje dopasowanie wszystkich plików tymczasowych o nazwach zakończonych znakiem tyldy "~". Pliki lub katalogi zgodne z dowolnym wzorcem zostaną zignorowane podczas operacji aktualizowania lub zatwierdzania. Po określeniu wzorca pliku do zignorowania można tymczasowo wyłączyć ignorowanie wzorca pliku, usuwając zaznaczenie tego wzorca na liście. Nie jest konieczne usuwanie określonego wzorca pliku z listy.

Wzorce funkcji globalnego ignorowania są dopasowywane do nazw zasobów podczas operacji synchronizacji. Należy zauważyć, że ścieżka prowadząca do nazwy zasobu nie jest dopasowywana do wzorca. Na przykład w przypadku pliku "/ścieżka/do/pliku.txt" tylko łańcuch "pliku.txt" zostanie dopasowany do wzorców. Ta funkcja nie jest przeznaczona do określania pełnych nazw ścieżek, lecz do określania wzorców stosowanych globalnie.

Funkcja ignorowania w systemie CVS

Klient CVS platformy Eclipse rozpoznaje plik o nazwie ".cvsignore" w każdym katalogu projektu. Jest to standardowa funkcja systemu CVS, a wiele istniejących projektów CVS może zawierać ten plik.

Są to pliki tekstowe zawierające listę plików, katalogów lub wzorców.  Podobnie jak w przypadku funkcji globalnego ignorowania, możliwe jest użycie znaków zastępczych "*" i "?" we wpisach pliku .cvsignore. Pliki lub podkatalogi w katalogu bieżącym zgodne z dowolnym wzorcem zostaną zignorowane. Należy zauważyć, w jaki sposób semantyka tego pliku różni się od semantyki globalnej funkcji ignorowania. Plik ten jest stosowany tylko dla plików i katalogów w tym samym katalogu co plik .cvsignore. Projekt może zawierać jeden plik .cvsignore w każdym katalogu. Więcej informacji można znaleźć pod adresem  https://www.cvshome.org.

Zasoby, które nie zostały objęte kontrolą systemu CVS, można zignorować przez wybranie opcji Zespół > Dodaj do .cvsignore z menu podręcznego zasobu w jednym z widoków nawigacyjnych. Ta opcja menu jest dostępna również w widoku Synchronizacja.