2013-02-12 17 views
5

Robię eksport svn repo do lokalizacji tymczasowej, a następnie usuwam niektóre katalogi przed skopiowaniem podstawy kodu do katalogu wdrażania.eksport svn wszystkie oprócz niektórych katalogów

Czy istnieje sposób, aby "wykluczyć" listę katalogów podczas wykonywania polecenia "eksportuj"?

Powodem tego jest to, że eksport jest szybszy (nie trzeba pobierać elementów, które usuwam w tym uruchomieniu), a zatem skrypt wdrażania jest szybszy.

+0

Należy do unix.stackexchange.com – Benjamin

Odpowiedz

3

Aby to osiągnąć, można użyć koncepcji Sparse Directories Exclusion. Aby uzyskać szczegółowe informacje na ten temat, można go przeczytać here.

To również wyjaśniło powyższą koncepcję jako blog post.

Załóżmy, że nie obchodzi mnie, co dzieje się w katalogu z jedną z moich kopii roboczych projektu . Może już nie interesuje mnie strona projektu Subversion . Cóż, z tej nowej funkcji wykluczania, ja można powiedzieć Subversion, aby usunąć ten katalog:

$ cd ~/projects/subversion/trunk 
$ svn update --set-depth=exclude www 
D   www 
$ ls www ls: cannot access www: No such file or directory 
$ 

zrobić wiele. Kiedy zaktualizuję kopię roboczą w przyszłości, I nie otrzyma żadnych zmian skierowanych na ten katalog www. Gdybym później zdecydować, że jeszcze raz dbać o tym katalogu, mogę „ponownie zarejestrować” do niego ponownie:

$ svn update --set-depth=infinity www 
A www 
A www/links.html 
A www/testing-goals.html 
… 
A www/tigris-permissions.html 
A www/webdav-usage.html Updated to revision 36292. 
$ 
+1

Dziękujemy za jednoznaczną odpowiedź. Miałem nadzieję na "jedno polecenie", ale domyślam się, że w moim przypadku trzy polecenia będą działały. Podsumowanie kroków: "svn update --set-depth = exclude; svn export; svn update set-depth = nieskończoność; – user1484259

Powiązane problemy