czwartek, 4 października 2007

Nazwy plików a system SVN

W zasadzie prosta sprawa. Nazwy plików różniące się tylko wielkością znaków (duże/małe litery) w systemie MSW są nierozróżnialne. Jeżeli takimi plikami zarządza system kontroli wersji SVN, to w linuksie i podobnych systemach wszystko działa, a w MS Windows nie -- i w pierwszej chwili nie wiadomo dlaczego. A nie działa zapewne dlatego, że plik jest nadpisywany i SVN-owi nie zgadza się liczba ściągniętych dokumentów.


#!/usr/bin/perl
# Rekursywnie przeszukuje bieżący katalog wypisując pliki, których nazwy
# różnią się tylko wielkością liter (małe/duże).
# Takie pliki nierozróżnia tzw. W-System, co może być źródłem problemów.

use File::Find;
find(\&fcmp, ".");

sub fcmp {
$dir = lc("$File::Find::dir");
$file = lc("$File::Find::name");
$Files{$dir}{$file}++;
}

for $d (sort keys %Files ) {
for $f (sort keys %{ $Files{$d}} ) {
if ($Files{$d}{$f} > 1) {
print "** $Files{$d}{$f} Duplicates found for: $d $f\n" ;
}
}
}

Powyższy skrypt perlowy wypisze pliki, które potencjalne mogą powodować problemy.

Brak komentarzy:

Prześlij komentarz