Twoje wyreczytanie ścieżek ignorowanych jest zbyt ogólne. Podane wyrażenie regularne jest uruchamiane na pełnej ścieżce. Na przykład, jeśli twój układ repozytorium:
svn_root/path/to/your_project
A potem ma standardowy układ pnia, gałęzi i tagów, zestaw przykładowych linii toru, który pobiera ocenianych może być:
svn_root/path/to/your_project/trunk/new/folder/cache
svn_root/path/to/your_project/trunk/meta/files/sets/tmps.html
svn_root/path/to/your_project/trunk/file/conf/setting.xml
svn_root/path/to/your_project/trunk/cache/...
svn_root/path/to/your_project/trunk/tmps/...
LETS zacząć od analizy regex podałeś jako część parametru ignorowanych ścieżek:
'(/cache|/tmps|/file/conf/setting.xml)'
- otaczającej nawiasach pomocą to wyrażenie w ciągu should be capturing.
- Rury lub alternation oznacza ocenić każdy wyraz ciągu docelowym z kilku możliwych wyrażeń
- Każde wyrażenie jest bardzo prosta, ale pozwala analizować każdy:
- /cache
- Znajdź dosłowny znak "/"
- Znajdź dosłownego znaku "c"
- Znajdź dosłownego znaku "a"
- znaleźć dosłownego znaku "C"
- Znajdź dosłownego znaku "h"
- znaleźć dosłowny znak "e"
- /PZT
- Znajdź dosłownego znaku "/"
- Znajdź charakter dosłowny "T"
- Znajdź dosłowny znak „m”
- Znajdź dosłownego znaku „p”
- Znajdź dosłownego znaku „s”
- /file/conf/setting.xml
- Znajdź dosłownego znaku "/"
- znaleźć dosłownego znaku "F"
- Znajdź dosłownego znaku "i"
- Znajdź dosłownego znaku "L"
- Znajdź dosłownego znaku " e”
- Znajdź dosłownego znaku "/"
- znaleźć dosłownego znaku "c"
- Znajdź literalny znak "o"
- Znajdź dosłownego znak „n”
- Znajdź dosłownego znak „F”
- Znajdź dosłownego znaku „/”
- Znajdź dosłownego znak „s”
- Znajdź dosłownego postaci „E”
- Znajdź dosłownego znaku "t"
- znaleźć dosłownego znaku "t"
- Znajdź dosłownego znaku "i"
- znaleźć dosłownego znaku "n"
- Znajdź charakter dosłowny "g"
- match (prawie) dowolnego znaku
- Znajdź dosłownego znaku "x"
- Znajdź charakter dosłowny "m"
- Znajdź dosłownego znaku "L"
przy zwykłej ekspresji analizowanych, pozwala chodzić po ścieżkach przykładowych podanych powyżej ze swoimi wyrażeniami:
String ocena:
svn_root/path/to/your_project/trunk/new/folder/cache
- pętli każdego znaku szuka dosłownym "/", a następnie "C", etc ... aż kompletny mecz jest przy pierwszym pod- znaleziono wyrażenie "/ cache". Ta ścieżka jest ignorowana.
String ocena:
svn_root/path/to/your_project/trunk/meta/files/sets/tmps.html
- pętli każdego znaku szuka dosłownym "/", a następnie "C", etc ... nie znaleziono
- Pętla przez każda postać szuka literału "/", a następnie "t", etc ... aż do znalezienia pełnego dopasowania z drugim podekspozycją "/ tmps". Ta ścieżka jest ignorowana.
String ocena:
svn_root/path/to/your_project/trunk/file/conf/setting.xml
- pętli każdego charakteru i ocenić przed pierwszym sub-wypowiedzi.Nie znaleziono żadnego dopasowania.
- Przeprowadź pętlę przez każdy znak i porównaj z drugim podekspozycją. Nie znaleziono żadnego dopasowania.
- Przeprowadź pętlę przez każdy znak i porównaj z ostatnim podekspozycją. Dopasowanie zostało znalezione. Ścieżka ta jest ignorowana.
Z tego miejsca najprawdopodobniej widać, dlaczego następujące dwie wartości są również ignorowane. Jednym z wyrazów podrzędnych pasuje część każdej ścieżki:
svn_root/path/to/your_project/trunk/cache/...
svn_root/path/to/your_project/trunk/tmps/...
Istnieje kilka sposobów, aby rozwiązać ten problem, ale jeśli tylko stara się ignorować kilka konkretnych katalogów w bagażniku, można modyfikować swój wyraz w następujący sposób:
'(trunk/cache|trunk/tmps|/file/conf/setting\.xml)'
To naprawdę zależy od tego, co chcesz zrobić, które ścieżki chcesz zignorować. Jeśli potrzebujesz dodatkowej pomocy, możesz szczegółowo wyjaśnić, w jaki sposób tworzone jest twoje repozytorium i które katalogi mają być ignorowane.
Doskonałe wyjaśnienie prostego wyrażenia regularnego. – Martin