This post comes from the first version of this blog.
Please send me an email if anything needs an update. Thanks!
W serii krótkich porad wtorkowych czas na kolejny temat związany z używanym przeze mnie systemem kontroli wersji - narzędziem Subversion. Dzisiaj chciałbym się z Wami podzielić prostą, wręcz trywialną sztuczką, dzięki której oszczędzicie sobie przenoszenia źle wyeksportowanych danych z repozytorium.
Problem: Checkout repozytorium tworzy niepotrzebny katalog.
Na początku zdefiniujmy problem, jaki będziemy chcieli rozwiązać. Otóż najprostszy, a właściwie jedyny sposób na stworzenie własnego Working Copy projektu zarządzanego przez SVN jest wykonanie checkoutu z repozytorium. Aby to uczynić, należy wykonać w konsoli poniższe, przykładowe polecenie, wykorzystując narzędzie svn:svn co http://svn.example.com/project/trunk
Przełącznik “co”, to skrót od nazwy checkout, który może być wykorzystywany z nim zamiennie.
Zostanie utworzone Working Copy zawierające gotowy do edycji zbiór danych, zgodny ze strukturą repozytorium. Problem polega na tym, że dane te zostaną umieszczone o jeden poziom wyżej, niż tego normalnie oczekiwalibyśmy - w katalogu o nazwie odpowiadającej ostatniemu członowi adresu repozytorium. Mając na uwadze podany w powyższym poleceniu adres, będzie to katalog “trunk”.
Jak temu zapobiec?
Rozwiązanie: Podanie dodatkowego parametru wskazuje katalog docelowy.
Polecenie checkout, oprócz adresu URL repozytorium przyjmuje dodatkowy parametr określający katalog docelowy eksportu jego zawartości. Jeśli zatem podamy dowolną, poprawną w tym kontekście nazwę, to SVN sam utworzy ten katalog i zapisze do niego eksportowane dane:svn co http://svn.example.com/project/trunk teddybear
Powyższe polecenie, zamiast do katalogu “trunk” zapisze nam dane do “teddybear”. Jak zatem rozwiązać tytułowy problem checkoutowania repozytorium do aktualnego katalogu? Wystarczy wykorzystać w tym celu nieco “magii” związanej z samym działaniem konsoli - czyli aliasu na aktualny katalog, a więc znaku kropki - “.”:
svn co http://svn.example.com/project/trunk .
Wykonujemy powyższe polecenie i naszym oczom ukazują się pięknie wyeksportowane dane z repozytorium umieszczone w aktualnie wybranym katalogu. Mam nadzieję, że przyda Wam się ta mała informacja, szczególnie ze względu na fakt, że rekursywne przenoszenie katalogów w konsoli nie należy do specjalnie wygodnych czynności. ;]