niedziela, 6 lutego 2011

Prostsze życie z SVN

Nie ma to jak sobie upraszczać (choć czasem tym sposobem można sobie też utrudniać) życie.

W pracy edycja projektu ma swój proces:

1. Wprowadzamy zmianę.
2. W katalogu z projektem z Tortoise SVN trzeba kliknąć się RMB i wybrać "Commit", kliknąć OK
3. W oknie puttego uruchamiam skrypt updateujący źródła na serwerze.

Dopiero po takich krokach mogę podziwiać zmiany na serwerze. Oczywiście, może sie to wydawać żmudne i takie jest przy testowaniu, wprowadzaniu kolejnych zmian i rozwijaniu aplikacji.

W domu postanowiłem dla własnego projektu ten proces nieco usprawnic. Skorzystami z paru właściwosci i narzędzi:

1. Netbeans pozwala na pracę na dwóch katalogach naraz - katalogu projektu i katalogu źródeł. Po prostu zapisuje zmiany w projekcie i dodatkowo w katalogu, który jest document rootem na moim lokalnym serwerze.

2. Tortoise ma opcję definiowania skryptów uruchamianych na poszczególne zdarzenia.

3. Putty ma narzedzie umożliwiające jednorazowe uruchomienie sesji, zalogowanie się, wykonanie komendy i wylogowanie - plink.exe

A więc tak: we właściwościach projektu (klikamy prawym na nazwie projektu - Project Properties) wybieramy zakładkę Sources, zaznaczamy w niej Copy files from Sources Folder to another Location i w Copy to Folder wpisujemy adres katalogu na serwerze na jaki chcemy kopiować pliki. Wbrew pozorom ma to sens, bo nasz projekt moze generowac pliki tymczasowe, cache itd, których nie chcemy eksportować na svn na przykład. Przez przeglądarke pracujemy wtedy na jednej kopii, a projekt siedzi niemodyfikowany w innym katalogu. U mnie struktura dysku "Praca" wygląda tak:


E:\www\projekt\ <- Document Root
E:\praca\projekt\ <- Katalog projektu netbeans oraz svn (.netbeans dodałem do listy katalogów ignorowanych w svn)

Pamiętajmy, że pozostawia to nam niezłe pole do popisu, gdy użyjemy programu podpinającego konto ftp/sftp jako napęd logiczny w naszym systemie - dzieki temu możemy eksportować pliki bezpośrednio na serwer zdalny!!!

Jedziemy dalej.

Wchodzimy do ustawień Tortoise SVN (klikamy gdziekolwiem RMB, Tortoise SVN -> Settings). W oknie ustawień wybieramy Hook Scripts i wciskamy "Add".

W nowym oknie ustawiamy:
Hook Type
Post-Commit-Hook (dokona się po zacommitowaniu zmian na repozytorium)
Working Copy Path
E:\praca\projekt\ (w moim przypadku, katalog którego skrypt ma dotyczyć)
Command Line to Execute
E:\putty\plink.exe -pw moje_hasło nazwa_uzytkownika@serwer 'komenda_lub_skrypt_do_uruchomienia'


po stronie serwera (o ile mamy dostęp przez ssh) możemy wtedy uruchomić sobie np. svn update /katalog/projektu i nasze dane zostaną zupdateowane.


I jeszcze mała uwaga. Zdarza się, że proces TSVNCache.exe potrafi nam ostro zamulić system. Niestety reza nam on po wszystkich dyskach w poszukiwaniu katalogów .svn, dla których chce aktualizować ikony. Prostym sposobem pozbycia się tego problemu jest zmiana ustawień Tortoise SVN. Zmusimy go do monitorowania jedynie naszego katalogu projektu.

Ponownie wchodzimy do ustawień Tortoise, wybieramy Icon Overlays. Edytujemy dwie opcje:

Exclude paths:
dodajemy tu WSZYSTKIE nasze napędy, po jednym w każdej linii:
C:\*
D:\*
E:\*
itd.

 Include paths:
dodajemy tylko katalogi, w których są nasze projekty:
E:\praca\projekt\*

Dzieki takiemu ustawieniu TSVNCache.exe będzie monitorować tylko, co powinien :)

3 komentarzy:

  1. Ale to skomplikowane.. Ehh ten mózg umanistyczny ;))

    OdpowiedzUsuń
  2. * humanistyczny, pardom ;)

    OdpowiedzUsuń
  3. Co to za humanista, który pisze "pardom" ? :D

    OdpowiedzUsuń