Reguły .ffignore

Reguły .ffignore mówią FlyingFiles, których plików i katalogów nie kopiować, nie przenosić i nie pokazywać w wynikach wyszukiwania. Typowy przykład: wysłanie projektu na serwer bez node_modules/, .git/ i plików *.log.

Składnia jest taka sama jak w pliku .gitignore znanym z Gita.

Gdzie leżą reguły

Reguły należą do konkretnego katalogu i leżą w jego podkatalogu .flyingfiles/:

Projekt/
  .flyingfiles/
    .ffignore.txt     wzorce, jeden w wierszu
    .ffconfig.txt     ustawienie: czy reguły są domyślnie włączone
  src/
  node_modules/

.ffconfig.txt zawiera JSON, np. { "ffignore_default": true }. Wartość true oznacza, że reguły są włączone domyślnie.

Uwaga: Przy kopiowaniu i przenoszeniu program czyta reguły z katalogu, w którym leżą zaznaczone elementy, a po stronie celu — z katalogu docelowego i z kopiowanych katalogów, jeśli już istnieją w celu. Przy wyszukiwaniu — z katalogu, w którym szukasz. Reguły z katalogów wyżej w drzewie nie są dziedziczone, a reguły zaznaczonego katalogu nie działają, gdy kopiujesz go z katalogu nadrzędnego.

Tworzenie reguł

  1. W aktywnym panelu otwórz katalog, np. katalog projektu.

  2. Zaznacz pliki i katalogi, które mają być pomijane (np. node_modules, build). Możesz niczego nie zaznaczać.

  3. Wybierz Funkcje → Dodaj plik .ffignore.

Program utworzy .flyingfiles/.ffignore.txt (z pierwszą regułą .flyingfiles, żeby sam katalog reguł nie był kopiowany) i .ffconfig.txt z regułami włączonymi domyślnie. Zaznaczone elementy dopisze jako wzorce: katalog jako nazwa/, plik jako nazwa. W tytule okna pojawią się ścieżki obu plików, a kursor stanie na katalogu .flyingfiles.

Plik .ffignore.txt możesz potem edytować F4 jak każdy plik tekstowy. Reguły dopiszesz też z okna Wyszukaj zmiany.

Gdzie działają

OperacjaJak
Kopiowanie F5okno Kopiuj ma pole Uwzględnij reguły z .ffignore, gdy katalog źródłowy albo docelowy ma reguły; stan początkowy z .ffconfig.txt
Przenoszenie F6reguły są stosowane automatycznie, gdy .ffconfig.txt ma je włączone
Wyszukaj…pole Uwzględnij plik .ffignore
Wyszukaj zmiany…pole Uwzględnij plik .ffignore i przyciski dopisujące reguły

Reguły działają w obie strony:

  • reguły katalogu źródłowego pomijają pasujące elementy przy kopiowaniu;

  • reguły katalogu docelowego chronią pasujące miejsca w celu — element, który trafiłby w chronioną ścieżkę, jest pomijany.

Jeśli reguły odfiltrują wszystko, program napisze: „Nic nie zostało skopiowane. Sprawdź, czy reguły w .ffignore.txt nie zablokowały transferu.”

Składnia

WzorzecCo pomija
node_modules/każdy element node_modules na dowolnej głębokości, z całą zawartością
*.logpliki .log w każdym katalogu
buildplik albo katalog build na dowolnej głębokości
/dist/tylko element dist leżący bezpośrednio w katalogu z regułami
docs/draftsścieżka liczona od katalogu z regułami (ukośnik w środku zakotwicza wzorzec)
cache/*zawartość katalogu cache leżącego bezpośrednio w katalogu z regułami, bez samego katalogu
**/tmp/**katalog tmp na dowolnej głębokości razem z zawartością
? / [abc]jeden dowolny znak / jeden ze znaków
!ważne.logwyjątek: nie pomijaj ważne.log, choć pasuje do wcześniejszego wzorca
# komentarzwiersz bez znaczenia
  • Decyduje ostatni pasujący wzorzec.

  • Inaczej niż w Gicie ukośnik na końcu wzorca (build/) nie ogranicza go do katalogów — obejmie też plik o tej nazwie.

  • Wielkość liter ma znaczenie na każdym systemie (*.JPG nie obejmuje zdjecie.jpg).

  • Puste wiersze nic nie robią; spacje na końcu wiersza są obcinane; \ wyłącza specjalne znaczenie znaku (\#plik).

Przykład

.flyingfiles/.ffignore.txt projektu strony internetowej:

.flyingfiles
.git/
node_modules/
*.log
.DS_Store
/config/local.php

Wejdź do katalogu projektu, zaznacz wszystko (+) i naciśnij F5 z zaznaczonym Uwzględnij reguły z .ffignore: zawartość projektu trafi na serwer bez repozytorium, zależności, dzienników, plików Findera i lokalnej konfiguracji — a Wyszukaj zmiany pokaże tylko pliki, które naprawdę trzeba wysłać.

FlyingFiles 1.0.0 · Funkcje po 1.0.0 są oznaczone w treści.