Karol Zalewski's Journal

Visual Studio 2005: Współpraca z SVN

Do tej pory pracując w zespole studenckim (pozdrowienia dla Owcy i Psychola) pisaliśmy głównie projekty w Javie. Wykonując je korzystaliśmy z dwóch najpopularniejszych IDE - NetBeans oraz Eclipse. Narzędzia te nie miały żadnego problemu z wewnętrzną obsługą systemów kontroli wersji takich, jak CVS, czy też SVN, z którego to właśnie korzystaliśmy. Czasy się jednak zmieniają...

Obecny projekt mamy zamiar napisać korzystając z C♯ oraz Microsoft Visual Studio 2005 (darmowa wersja pobrana z MSDNAA). I tutaj zaczynają się schody - Visual Studio 2005 nie posiada natywnego wsparcia dla SVN. Jak sobie z tym poradzić nie wydając pieniędzy i działając w świetle prawa?

Mamy na to sposób ;-)

AnkhSVN został zapoczątkowany, jako projekt na ostatnim roku studiów przez Arilda Finesa. Co najważniejsze, jego rozwój był nadzorowany przez Karla Fogela - jednego z ojców Subversion. Przeznaczony dla Visual Studio 2002, 2003 (wersja 1.x) oraz nowszych (wersja 2.x) bezproblemowo integruje się ze wspomnianym IDE. Jeszcze dwa lata temu zawierał sporo bugów, ale teraz sytuacja uległa znaczącej poprawie. Polecam to rozwiązanie.

TortoiseSVN nie jest niestety wtyczką do Visual Studio, ale... Został stworzony do obsługi SVN-a i robi to doskonale! Bezproblemowo integruje się z eksploratorem Windowsa, a w związku z tym jest niezależny od IDE. Polecany przez wielu programistów.

Wspomnieć można jeszcze o VisualSVN. Projekt płatny, wymagający do poprawnego działania TortoiseSVN, a do tego nie jest tak dobry, jak AnkhSVN ;-)

PS. Przy okazji znaleźliśmy świetny program do tworzenia prostych diagramów Gantta. Darmowy, wieloplatformowy (Java) GanttProject. Według naszego diagramu na niniejszą notkę miałem czas do najbliższego czwartku ;-D

Comments:

1. Airborn on 2008-10-07 at 22:43:04 said:

i jeszcze dobra, zwięzła instrukcja dla początkujących jak korzystać z SVN, dla mnie poproszę, bo próba intuicyjnego wymacania opcji TortoiseSVN skończyła się dla mnie swego czasu zamazaniem części plików :P

2. Zal on 2008-10-07 at 22:53:20 said:

Ja zacząłem od postawienia własnego serwera Subversion i kombinowania na plikach ;] Do tej pory nie miałem większej styczności z robieniem „merge” dwóch plików w dwóch różnych wersjach ;D Dlatego nie czuję się też kompetentny do tworzenia takowego poradnika. Co nie zmienia faktu, że pewnie i tak będę zmuszony do opisania tego ze względu na kolegę z zespołu, który jeszcze nie miał okazji korzystania z żadnego systemu kontroli wersji. Jedno jest pewne – będę wykorzystywać wspomniane oprogramowanie (scentralizowany SVN wystarczy) nawet do własnych, samodzielnie wykonywanych projektów.

Myślę jeszcze nad tym, aby zapoznać się z Gitem (na takim np. Githubie) oraz Bazaarem (używanym na Launchpadzie), jako przedstawicielami rozproszonych systemów kontroli wersji ;)

A podstawy SVN-a najłatwiej wyłapać korzystając z podręcznika Subversion rozpoczynając od podstawowych komend :]

3. Airborn on 2008-10-07 at 22:56:08 said:

z Bazaara na Launchpadzie korzystałem, co prawda nie do pracy grupowej ale jako backup dla swojego projektu i to w zasadzie również tylko testowo, znalazłem sobie jakąś graficzną nakładkę i bardzo szybko doszedłem do wniosku, że znacznie lepiej mi się go obsługuje z konsoli ;)

tego podręcznika jeszcze nie spotkałem, dzięki ;)

4. Zal on 2008-10-07 at 22:58:13 said:

Proszę bardzo :] Mam nadzieję, że się przyda – jest okraszony wieloma przykładami, więc bardzo łatwo można zrozumieć ideę opisywanej komendy.

5. Pyetras on 2008-10-07 at 23:24:07 said:

Szczerze mówiąc VisualSVN wydawał mi się lepszy od Ankh – jakiś taki przyjemniejszy w użyciu ;) Jedną z bardziej przydatnych opcji było automatyczne pomijanie foldera Debug i innych plików specyficznych dla lokalnego usera przy commicie.
Z drugiej strony do AnkhSVN dołączana jest biblioteka (NSVN czy jakoś tak), z której można przy odrobnie wysiłku wyciągnąć pare ciekawych funkcji do obsługi SVN przez .net ;)

6. Zal on 2008-10-07 at 23:26:59 said:

@Pyetras: I nie bez znaczenia jest też to, iż VisualSVN kosztuje około 50$, co dla trzech studentów to całkiem sporo. Szczególnie, iż potrzebne byłyby trzy licencje ;]

7. Pyetras on 2008-10-07 at 23:31:19 said:

No to fakt, tu duży plus dla Ankh. Natomiast jako ciekawostkę dodam jeszcze że 30-dniowy trial VisualSVN można było zhaczyć przestawianiem zegarka w Windowsie :D

8. Zal on 2008-10-07 at 23:33:16 said:

@Pyetras: Heh… nie spodziewałem się, że takie metody jeszcze działają ;D Z drugiej zaś strony, jak ktoś chciałby w sposób nielegalny zdobyć oprogramowanie to i tak zdobędzie, więc mocniejsze zabezpieczenia nie są konieczne ;]

9. Regis on 2008-11-02 at 15:03:26 said:

Tak sie sklada, ze wlasnie mialem podobny problem – projekt na uczelni w grupie trzyosobowej i brak wsparcia SVN w MVS2005 – i ten tekst pomogl mi podjac decyzje.

Od siebie dodam tylko, ze jesli ktos nie ma wlasnego serwera SVN, to moze skorzystac z serwisu assembla.com – mozna tam dostac darmowe konto. Ma to pewne wady, ale do projektow na uczelni jest OK. Co do samego SVN – jesli ktos go do tej pory nie uzywal, to pobawcie sie nim zanim zaczniecie prace i robcie potem regularne branche. Latwo w nim cos spieprzyc, jesli nie ma sie pewnosci co sie robi i jak to zrobic. A mocno sypnietego repozytorium w zasadzie NIE DA sie odzyskac – tzn. trzeba albo przywracac wczesniejsze wersje, albo wrzucac pliki na nowo.

Druga sprawa, to wspomniany GanttProject – jakis czas temu w firmie w ktorej pracuje jako osoba odpowiedzialna za projekty (PM) zastanawialismy sie nad tym jakich narzedzi do Gantta uzyc. Rozwazalismy GanttProject oraz OpenProj i mimo zalet tego pierwszego bardzo goraco polecam jednak ta druga opcje – ma rozbudowane mozliwosci zarzadzania kalendarzem i kosztami projektu (chociaz w projektach studenckich koszty raczej nie sa wygorowane ;) ), zasobami ludzkimi i ‘rzeczowymi’ i pare innych ciekawych funkcji ( nie wszystkie sa w GP). Brak mozliwosci wydruku do PDF mozna latwo zastapic instalacja PDFCreatora.

Pozdrawiam ;)

Add comment:

You can use Markdown. HTML is not working!

You post comment on CC BY-NC-SA 3.0 license. If you disagree - do not comment!


Comment preview: