Rewizje SVN w plikach

Po dłuższej przerwie wróciłem do korzystania z svn’a (przerwa wymuszona brakiem czasu) – przygotowuję się na rozszerzenie składu firmy, od porządków zacząć najlepiej. W międzyczasie przemyślałem system automatycznego updat’u aplikacji. System nie jest prosty, bo mam dość spore wymagania w tej kwestii. W najbliższym czasie powinien pojawić się odpowiedni wpis. Jednym z problemów jakie się pojawiły jest wersjonowanie plików – po co bawić się w numerowanie ręczne, md5 i inne problematyczne rozwiązania, skoro korzysta się z SVNa.

Dodałem do każdego pliku odpowiednie svn:keywords – Revision, ale ręcznie nie zmodyfikowałem (jeszcze) wszystkich plików – jest ich zbyt dużo, a zanim powstanie system update’ów (którego pisanie zajmie min. miesiąc – po godzinach) zdążę wszystko uzupełnić. Tylko.. gdzie uzupełniłem, a gdzie nie? Oto jest pytanie! Skrypt zna odpowiedź :-)

Uruchamiamy z linii poleceń (jeśli występuje parametr, to musi być katalogiem) a na wyjściu otrzymujemy listę plików (katalogi są sprawdzane rekurencyjnie [DIR ]) z zaznaczeniem, czy posiadają Revision: (co będzie automatycznie zastąpione przez SVN) [ OK ], lub oznaczeniem, że nie posiadają [----].

Prosty i skuteczny sposób na upewnienie się, że pliki posiadają odpowiednie “stringi”. Można przemyśleć, czy nie sprawdzać w ten sposób innych rzeczy – nagłówków (GPL?), @package, @author? Istnieje dużo ciekawych pomysłów na wykorzystanie.