Scoping ignoruje deklaracje zgodnie

3

Używam unison do synchronizacji dwóch komputerów i ogólnie chciałbym zignorować wszystkie ukryte pliki oprócz kilku. Mam plik preferencji unison ( default.prf), który wygląda następująco:

# Unison preferences file

# keep time stamps
times = true
auto = true

ignore = Name .*

path = Documents
path = .hgrc
path = .vimrc

Mimo że chciałbym, aby większość ukrytych plików była ignorowana, chciałbym .hgrci .vimrcbył zsynchronizowany między dwoma komputerami. Jednak przy powyższej konfiguracji są one również ignorowane. Jak mogę rozwiązać problem ich synchronizacji?

dzhelil
źródło

Odpowiedzi:

3

Według http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#prefs , „ignoruj” może być przydatne tutaj.

Ta preferencja przesłania preferencję ignorowania. Podaje listę wzorców (w tym samym formacie, co ignorowanie) dla ścieżek, które zdecydowanie nie powinny być ignorowane, niezależnie od tego, czy pasują one do jednego z wzorców ignorowania.

Nie jestem doświadczonym użytkownikiem Unison, więc nie wiem, czy obowiązuje tutaj następujące zastrzeżenie:

Zauważ, że semantyka ignorowania i ignorowania jest trochę sprzeczna z intuicją. Podczas wykrywania aktualizacji Unison analizuje ścieżki w pierwszej kolejności według głębokości, zaczynając od korzeni replik i pracując w dół. Przed zbadaniem każdej ścieżki sprawdza, czy pasuje do ignorowania i nie pasuje do ignorowania; w tym przypadku omija tę ścieżkę i wszystkich jej potomków. Oznacza to, że jeśli jakiś rodzic danej ścieżki pasuje do wzorca ignorowania, zostanie pominięty, nawet jeśli sama ścieżka pasuje do wzorca ignorowania. W szczególności umieszczenie ignore = Path * w swoim profilu, a następnie użycie ignorenot do wybrania określonych ścieżek do synchronizacji nie będzie działać. Zamiast tego należy użyć preferencji ścieżki, aby wybrać określone ścieżki do synchronizacji.

Zdaję sobie sprawę, że przychodzi to ponad miesiąc po twoim pytaniu. Mimo to mam nadzieję, że się przyda.

Johannes
źródło