2012-01-05 5 views
10

Używam opcji --cvs-exclude w moich skryptach rsync od nieco ponad roku. Pracuję z repozytorium SVN, dzięki czemu pliki SVN są poza produkcją.Korzystanie z opcji --cvs-exclude in rsync Nagle Ignoruje główny folder?

Dzisiaj podjąłem próbę zsynchronizowania zmian i nagle rsync nie wyłapał niczego z folderu o nazwie "core". Po zbadaniu dowiedziałem się, że "core" to folder CVS, więc zostanie zignorowany.

Moje pytanie brzmi: dlaczego rsync w ogóle dla mnie działał, ale nagle dzisiaj postanowił zacząć ignorować folder "core", tak jak powinien.

Rozwiązałem problem, po prostu ignorując pliki SVN zamiast używać wykluczania CVS, ale wciąż jestem zakłopotany, dlaczego rsync działał do dzisiaj.

Mój stary kod rsync:

rsync -vcaz --no-p --cvs-exclude --exclude downloader --exclude media --exclude var  /var/www/project/ [email protected]:/var/www/project/httpdocs/ | grep -v '/$' 

System operacyjny (Running Xubuntu): wersja

Distributor ID: Ubuntu 
Description: Ubuntu 11.10 
Release: 11.10 
Codename: oneiric 

rsync:

rsync version 3.0.8 protocol version 30 
Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others. 
Web site: http://rsync.samba.org/ 
Capabilities: 
64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints, 
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, 
append, ACLs, xattrs, iconv, symtimes 

Być może nie jest to krytyczne pytanie, ale to mi przeszkadza niemniej jednak.

Odpowiedz

16

Wystąpił również ten sam problem. Rsync obejmuje następujące rodzaje plików jeśli opcja -C jest używany:

static char default_cvsignore[] = 
    /* These default ignored items come from the CVS manual. */ 
    "RCS SCCS CVS CVS.adm RCSLOG cvslog.* tags TAGS" 
    " .make.state .nse_depinfo *~ #* .#* ,* _$* *$" 
    " *.old *.bak *.BAK *.orig *.rej .del-*" 
    " *.a *.olb *.o *.obj *.so *.exe" 
    " *.Z *.elc *.ln core" 
    /* The rest we added to suit ourself. */ 
    " .svn/ .git/ .hg/ .bzr/"; 

„rdzeniowe” pliki są podstawowymi wysypisk zakończonych programów, więc zazwyczaj nie chcesz skopiować te pliki. Problem polega na tym, że masz na przykład katalog o nazwie "core".

Roztwór korzystać z opcji „--include” lub utworzyć plik filtrujący zawierający zasadę jak:

+ core

i użyj „--filter = plik”.

Powiązane problemy