Co by nie powiedzieć, to system ingorowania plików w SVN (subversion) jest dość toporny.. Przynajmiej w porównaniu z innymi systemami kontroli wersji gdzie jest to nieco przyjaźniejsze. W każdym razie też ma duże możliwości przy odrobinie trudu.
Po niżej trochę teorii.
Jeżeli chcemy zignorować wszystkie pliki z rozszerzeniem JPG w danym folderze wywołujemy w nim:
1 |
svn propset svn:ignore "*.jpg" . |
Jeżeli chcemy aby obejmował on także podfoldery wywołujemy:
1 |
svn propset svn:ignore -R "*.jpg" . |
Następnie taką zmianę w folderze commitujemy.
Jednak sprawa się komplikuje jeżeli chcemy dodać do ignorowanych także pliki z rozszerzeniem JPEG. Nie możemy zadeklarować w komendzie więcej jak jednego rozszerzenia. Próby posiłkowania z REGEX też mogą spełznąć na niczym.
Możemy też spróbować 1) dodać rozszerzenie JPG 2) zacommitować 3) dodać rozszerzenie JPEG wg powyższych komend 4) ponownie zacommitować.
Jednak ku naszemu zaskoczeniu po takiej operacji będziemy mieć coprawda zignowowane pliki z rozszerzeniem *.jpeg ale … tryb ignore zostanie zdjęty z plików *.jpg.
Czyli w tej sytuacji możemy ignorować tylko 1 rozrzerzenie w danym folderze..
Jednak z pomocą przychodzi możliwość określania plików do zignorowania poprzez zewnętrzny plik tekstowy.
Tworzymy plik tekstowy:
1 |
nano ~/do_zignorowania_w_svn |
Dopisujemy do niego listę plików do zignorowania:
1 2 3 4 5 6 7 8 |
*.jpg *.jpeg *.JPG *.JPEG *.gif *.GIF *.png *.PNG |
Jak widzimy dodaliśmy tam zarówno różne warianty plików JPEG jak i rozszerzenia pisane CAPSem.
Każda nowa deklaracja musi być podana w nowej lini.
Wywołujemy następnie komendę w której wskazujemy na ten plik:
1 |
svn propset --recursive svn:ignore --file ~/do_zignorowania_w_svn . |
Jak widzimy posiada ona także flagę –recursive odpowiedzialną za objęcie tymi kryteriami także wszystkich podfolderów w danym folderze.
Gotowe! Tak wykonane ustawienie należy zacommitować.
To kolejny artykuł z serii artykułów o SVN.