Przez większość czasu, rozpoczęcie pracy z Subversion zaczniesz od pobrania kopii roboczej z repozytorium. Kopia robocza jest oznaczona jako HEAD - najnowsza wersja repozytorium podanego w opcjach polecenia svn checkout:
$ svn checkout http://svn.collab.net/repos/svn/trunk A trunk/Makefile.in A trunk/ac-helpers A trunk/ac-helpers/install.sh A trunk/ac-helpers/install-sh A trunk/build.conf … Checked out revision 8810.
Poprzedni przykład sprawdza repozytorium w folderze „trunk”, można całkowicie inny folder sprawdzić zmieniając go w adresie URL:
$ svn checkout \
http://svn.collab.net/repos/svn/trunk/subversion/tests/cmdline/
A cmdline/revert_tests.py
A cmdline/diff_tests.py
A cmdline/autoprop_tests.py
A cmdline/xmltests
A cmdline/xmltests/svn-test.sh
…
Checked out revision 8810.
Ze względu na to, że Subversion używa metody kopiuj-modyfikuj-scal zamiast blokuj-modyfikuj-odblokuj (zobacz „Modele wprowadzania zmian”), możesz natychmiast zacząć wprowadzać zmiany do plików i katalogów. Kopia robocza jest jak każdy inny zbiór plików i katalogów w systemie. Możesz edytować i zmieniać, przenosić go, a także usunąć i zapomnieć o tym katalogu.
|
Ostrzeżenie |
|---|---|
|
Podczas gdy kopia robocza jest „jak każdy inny zbiór plików i katalogów w systemie” możesz edytować jak tylko zechcesz pliki zawarte w kopii roboczej, ale każde inne operacje muszą być przekazane do Subversion. Dla przykładu, jeśli zechcesz skopiować lub przenieść jakiś plik, powinieneś użyć polecenia svn copy lub svn move zamiast kopiować i przenosić za pomocą systemowych narzędzi. Więcej o tym zostanie powiedziane w dalszej części tego rozdziału. |
O ile nie jesteś gotowy do dodania nowego pliku lub zmian wprowadzonych w już istniejących plikach, nie musisz przesyłać tych zmian do serwera Subversion.
Choć wystarczy wykonać checkout kopii roboczej z jednym parametrem (URL), można również określić katalog po adresie URL repozytorium. Spowoduje to, że kopia robocza trafi właśnie do tego nazwanego przez ciebie katalogu. Na przykład:
$ svn checkout http://svn.collab.net/repos/svn/trunk subv A subv/Makefile.in A subv/ac-helpers A subv/ac-helpers/install.sh A subv/ac-helpers/install-sh A subv/build.conf … Checked out revision 8810.
To umieści kopie roboczą w katalogu nazwanym subv zamiast trunk jak to wcześniej było wykonywane. Katalog subv zostanie utworzony, jeśli nie istnieje.
Podczas wykonywania operacji, która wymaga uwierzytelnienia, Subversion domyślnie próbuje zapisać hasło w formie zaszyfrowanej na dysku w celu jego późniejszego wykorzystania. W niektórych systemach, Subversion może nie być w stanie zaszyfrować hasło. Zostaniesz wtedy zapytany o to czy zapisać hasło w formie jawnego tekstu. Dla wygody można się zgodzić na taki stan rzeczy, dzięki czemu przy wykonywaniu następnych operacji nie będziesz pytany ponownie o hasło. Jeśli obawiasz się o to, że hasła są zapisywane w formie jawnego tekstu, możesz wyłączyć zapamiętywanie hasła w kliencie lub na serwerze.
Aby na stałe wyłączyć buforowanie haseł w jawnej formie (plaintext), możesz dodać linię store-plaintext-passwords = no w sekcji "global" w pliku servers na lokalnym komputerze. Aby wyłączyć zapamiętywanie hasła tylko dla konkretnego serwera, należy podobny wpis umieścić tylko w odpowiedniej grupie sekcji w pliku servers. Zobacz szczegóły „Configuration Options” i Rozdział 7, Customizing Your Subversion Experience.
Możesz również wyłączyć zapamiętywanie haseł, bez względu czy są zaszyfrowane czy w jawnym tekście zapisywane.
Aby całkowicie wyłączyć zapisywanie hasła w przypadku jednego wykonania polecenia, dodaj opcje --no-auth-cache do polecenia. To samo na stałe można osiągnąć poprzez dodanie do pliku konfiguracyjnego linijki store-passwords = no. Zobacz „Client Credentials Caching” po szczegóły.
Dzięki funkcji zapamiętywania danych uwierzytelniających, Subversion pamięta jaki użytkownik z jakim hasłem ostatnio wykonywał operacje na kopii roboczej. Czasami może to być utrudnieniem, szczególnie gdy kopia robocza jest używana przez kilku użytkowników. W takim przypadku do polecenia należy dodać opcję --username, a Subversion zaloguje się jako podany użytkownik po tej opcji, pytając o hasło jeśli będzie taka potrzeba.