Manuals

Ignorowanie plików i folderów

Rysunek 4.33. Menu kontekstowe eksploratora dla niewersjonowanych plików

Menu kontekstowe eksploratora dla niewersjonowanych plików


W większości projektów występować będą pliki i foldery, które nie powinny podlegać kontroli wersji. Mogą to być pliki utworzone przez kompilator, *.obj, *.lst, albo folder wyjściowy używany do przechowywania pliku wykonywalnego. Kiedykolwiek zatwierdzacie zmiany, TortoiseSVN pokazuje niewersjonowane pliki, które zapełniają listę plików w oknie dialogowym zatwierdzenia. Oczywiście można wyłączyć ich wyświetlanie, ale wtedy można zapomnieć o dodaniu nowego pliku źródłowego.

Najlepszym sposobem na uniknięcie tych problemów jest dodanie plików pochodnych do listy ignorowanych projektu. W ten sposób nigdy nie pojawi się w oknie dialogowym zatwierdzenia, a niewersjonowane oryginalne pliki źródłowe nadal będą oznakowane.

Wykonując prawoklik na pojedynczym niewersjonowanym pliku i wybierając polecenie TortoiseSVNDodaj do Listy Ignorowanych z menu kontekstowego, wyświetlimy menu podrzędne pozwalające na wybór tylko tego pliku lub wszystkich o tym samym rozszerzeniu. Oba podmenu mają także równoważnik (rekurencyjnie). Jeśli wybierze się wiele plików, nie ma podmenu i można dodać tylko takie pliki/foldery.

Przy wybraniu wersji (rekurencyjnie) menu kontekstowego ignorowania, element zostanie pominięty nie tylko w wybranym folderze ale również w folderach podrzędnych. Wymaga to jednak wersji klienta SVN 1.8 lub wyższej.

Jeśli chcecie usunąć jeden lub więcej elementów z listy ignorowanych, trzeba kliknąć prawym przyciskiem myszy na te elementy, a następnie wybrać TortoiseSVNUsuń z listy ignorowanych Możecie również uzyskać dostęp do atrybutu folderu svn:ignore bezpośrednio. To pozwala określić bardziej ogólne wzorce przy użyciu masek pliku, opisanych w rozdziale poniżej. Czytajcie „Ustawienia projektu” by uzyskać więcej informacji na temat ustawiania właściwości bezpośrednio. Należy pamiętać, że każdy wzorzec ignorować musi być umieszczony w osobnej linii. Oddzielanie ich spacjami nie działa.

Globalna lista ignorowania

Innym sposobem na ignorowanie plików, jest dodanie ich do globalnej listy ignorowania. Największą różnicą jest to, że globalne listy ignorowania są własnością klienta. Dotyczy to wszystkich projektów Subversion, ale tylko na kliencie PC. Ogólnie lepiej jest używać w miarę możliwości atrybutu svn:ignore, ponieważ może być stosowany do określonych obszarów projektu, i działa dla każdego, kto pobierze projekt. Czytajcie „Ustawienia ogólne” dla uzyskania dokładniejszych informacji.

Ignorowanie elementów wersjonowanych

Wersjonowane pliki i foldery nie mogą być ignorowane - to cecha Subversion. Jeśli włączyliście plik do kontroli wersji przez pomyłkę, przeczytajcie „Ignorowanie plików, które już są pod kontrolą wersji” by uzyskać instrukcję odwersjonowania go.

Dopasowanie wzorców w listach ignorowania

Wzorce ignorowania Subversion wykorzystują z obsługę masek pliku, technikę pierwotnie używaną w Unixie by określić pliki za pomocą wieloznacznych meta-znaków. Następujące znaki mają specjalne znaczenie:

*

Pasuje do dowolnego ciągu znaków, w tym ciągu pustego (bez znaków).

?

Zastępuje dowolny pojedynczy znak.

[...]

Pasuje do każdego ze znaków zamkniętych w nawiasach kwadratowych. Wewnątrz nawiasów, para znaków oddzielonych - pasuje do dowolnego znaku leksykalnego pomiędzy nimi. Na przykład [AGM-p] pasuje do każdego pojedynczego znaku z A, G, m, n, o lub p.

Dopasowanie do wzorca jest wrażliwe na wielkość liter, co może powodować problemy w systemie Windows. Możecie wymusić niewrażliwości na krótko przez parowanie znaków, np. by zignorować *. tmp, niezależnie od przypadku, należy użyć wzoru jak *.[Tt][Mm][Pp].

Jeśli potrzebujecie oficjalnej definicji dla obsługi masek, można go znaleźć w specyfikacji IEEE dla języka powłoki poleceń Pattern Matching Notation.

Brak ścieżek w globalnej liście ignorowanych

Nie powinno się zawierać informacji o ścieżce we wzorcu. Wzorzec dopasowania ma być użyty na pełnych nazwach plików i folderów. Jeśli chcecie, aby ignorować wszystkie foldery CVS, po prostu dodaj CVS do listy ignorowanych. Nie ma potrzeby, aby określić CVS */CVS , tak jak w poprzednich wersjach. Jeśli chcecie, aby ignorować wszystkie foldery tmp, gdy znajdują się w folderach prog, ale nie w folderach doc należy użyć atrybutu svn:ignore. Nie ma niezawodnego sposobu osiągnięcia tego celu za pomocą globalnego wzorca ignorowania.

TortoiseSVN homepage