Git rzÄ…dzi

Opublikowane przez Jarosław Zabiełło Sun, 18 May 2008 16:28:00 GMT

JeÅ›li miaÅ‚em wczeÅ›niej jakieÅ› wÄ…tpliwoÅ›ci czy przejść na Gita czy trzymać siÄ™ SVN’a, to już dziÅ› ich nie mam. Wygoda tworzenia lekkich branchy Gita jest powalajÄ…ca. Dzisiaj podczas tworzenia aplikacji z użyciem Sequel’a postanowiÅ‚em sprawdzić DataMappera...

Wiele osób sądzi, że następcą Active Record będzie DataMapper. Wykorzystuje podobne podejście odnośnie relacji między modelami, lecz działa dużo szybciej. Miałem jednak już trochę kodu w modelach opartych na Sequelu. Pierwsze, co trzeba zrobić to odpalić w katalogu projektu
git init
Powstanie folder .git. W przeciwieÅ„stwie do SVN, Git nie Å›mieci milionem katalogów .svn w każdym z podkatalogów. Git tworzy tylko jeden, na najwyższym poziomie – nice, isn’t it? NastÄ™pny krok to wrzucenie wszystkiego do lokalnego repozytorium (ten folder .git jest wÅ‚aÅ›ciwym repozytorium)
git add *
git commit -a

Nasz kod zostanie zachowany. Teraz tworzymy sobie lekki branch (w tym wypadku o nazwie “datamapper”). OpcjÄ™ -b używa siÄ™ podczas tworzenia gałęzi.

git checkout -b datamapper

Za pomocą generatorów wywaliłem wszystkie modele i stworzyłem nowy kod. W każdej chwili możliwy jest powrót do poprzednich plików. Wszystko dzieje się w mgnieniu oka

# przełączam się na pierwotny kod:
git checkout master

# teraz jestem znowu w gałęzi datamapper
git checkout datamapper

# grzebiÄ™ w kodzie
# zapisujÄ™ w repozytorum zmiany
git commit -a

# i z powrotem do głównego kodu :)
git checkout master

I już jestem z powrotem. Git pozwala na bÅ‚yskawiczne tworzenie nieograniczonej iloÅ›ci takich odgaÅ‚ezieÅ„ kodu. Bardzo to siÄ™ przydaje przy różnych eksperymentach z kodem. Można siÄ™ przełączać, i jeÅ›li chcemy, szybko scalać zmiany z gÅ‚ownÄ… gałęziÄ… (master). Bardzo mi siÄ™ to spodobaÅ‚o. OczywiÅ›cie, możliwość dÅ‚ubania w kodzie z zachowanie historii zmian w sytuacji kiedy nie mamy dostÄ™pu do internetu nie jest żadnym problemem dla Gita. To jest cecha wszystkich rozproszone systemów wersjonowania. Dlaczego Git a nie Mercurial? Można używać i Mercurial, ale Git jest najszybszy, mam do tego Å›wietnego githuba i nie interesuje mnie używanie win32 do tworzenia oprogramowania. Anyway, “bye, bye Subversion”.

Co z DataMapperem? Na dzień dzisiejszy ma za mało dokumentacji aby można było szybko go opanować. Sequel jest dużo łatwiejszy do opanowania i przydaje się bardziej tam gdzie mamy bardziej złożone struktury tabel. Złożone zapytania SQL dla Sequela to bułka z masłem. W DataMapper trochę się pogubiłem. Dam mu ponowną szansę może za 2 miesiące, jak będzie trochę więcej dokumentacji.

BTW, ci, co używajÄ… najnowszego Merba (wersja edge w chwili pisania tego tekstu nosi numer 0.9.4), nie znajdÄ… w kodzie merb-plugins biblioteki merb_datamapper. Merb już nie zajmuje siÄ™ tym moduÅ‚em, chÅ‚opaki z DataMapper’a przejÄ™li nad nim kontrolÄ™ i trzeba go Å›ciÄ…gać z innego miejsca, zostaÅ‚ dodany do dm-more. Sam gem datamapper można spokojnie wyrzucić bo stara wersa (0.3.x) zostaÅ‚a poważnie przebudowana i jest dostÄ™pna (aktualnie jako 0.9) pod innÄ… nazwÄ… jako dm-core i dm-more (trochÄ™ wzorowali siÄ™ tu na Merbie)

Tagi , , , ,  | 15 comments

Comments

  1. Avatar pagenoare powiedział about 2 hours later:

    Też początkowo lubiłem bardzo gita, ale zaczął mi wariować i gubić branchy (pewnie to było moją winą), więc przeszedłem na bazaar i jestem zadowolony :)

  2. Avatar Jarosław Zabiełło powiedział about 4 hours later:

    Jakoś Bazaar nie może się przebić. Sun wybrał Mercurial, a większość projektów w Ruby przechodzi masowo na Gita i korzysta z githuba.

  3. Avatar pawelk powiedział about 4 hours later:

    MyÅ›lÄ™, że Bazaar nie powiedziaÅ‚ jeszcze ostatniego sÅ‚owa :) Dla mnie linia rozwoju bazaara jest spójniejsza od gita, a już na pewno od Mercuriala, jednoczeÅ›nie Bazaar jest w mojej opinii elastyczniejszym narzÄ™dziem. Samo korzystanie z niego jest też bardziej intuicyjne i bezproblemowe, a o takie wrażenie trudno w przypadku konkurencji. No i przejÅ›cie z svn’a na bazaar’a jest praktycznie bezbolesne (polecenia zgodne z svn), co przy wiÄ™kszych projektach ma niemaÅ‚e znaczenie.

  4. Avatar dentharg powiedział about 15 hours later:

    Blogowałem nt. tworzenia gałęzi w git i por. tego do bazaar.

    Git ma jednÄ…, wielkÄ… zaletÄ™ – dziÄ™ki niemu można uniknąć rekompilacji; choć w przypadku tworzenia aplikacji www nie ma to wiÄ™kszego znaczenia.

  5. Avatar steamm powiedział about 15 hours later:

    Jarku tylko co z dostepnoscia narzedzi, np znajdz dobrze dzialajacy plugin pod Eclipsa… klepanie komend moze i jest fajne ale do czasu. Co do gita i Win, to istnieje przeciez Cygwin, od biedy msysgit (z githubem nie za bardzo dziala u mnie)

  6. Avatar benol powiedział 1 day later:

    Emacs jakiś czas temu postanowił przesiąść się na Bazaar i wielu developerów narzekało na wydajność (a jeszcze więcej kiedy zobaczyli o ile szybciej Git działa na tym samym repozytorium wziętym z CVS).

    Co do win32 to istnieje wygodny instalator Git’a pod windowsy (http://code.google.com/p/msysgit/), podobno tam Git dziaÅ‚a wolniej, ale ja tego nie zauważyÅ‚em.

  7. Avatar Jarosław Zabiełło powiedział 2 days later:

    Ciekawy projekt wzorowany na railscasts, ale koncentrujÄ…cy siÄ™ wokół Git’ – gitcasts.com

  8. Avatar mi powiedział 4 days later:

    Z ciekawoÅ›ci: co Ci przeszkadza w Sequelu, że próbowaÅ‚eÅ› DM? DM nie miaÅ‚em okazji używać, Sequel – w porównaniu do AR – rewelacja.

  9. Avatar Jarosław Zabiełło powiedział 4 days later:

    @mi: trochę brakuje mi wbudowanych relacji między modelami. Niby są, ale jakieś jeszcze niedopracowane. DM wykorzystuje też szybsze, parametryzowane zapytania SQL (Sequel jeszcze tego chyba nie ma, choć im to zgłaszałem i widziałem na liście dyskusyjnej jakieś propozycje składni do tego). No i Ezra Zygmuntowicz dosyć dobrze się wypowiadał o DM, więc chciałem zobaczyć, jak to wygląda w praktyce. Jak napiszą więcej dokumentacji to coś więcej będę mógł powiedzieć, bo na razie używanie DM przypomina macanie po omacku.

  10. Avatar kwiateusz powiedział 6 days later:

    assembla.com juz obsluguje Git i Mercurial i imo lepsze to niz github bo ma 5x wiecej przestrzeni, traca i rozne duperelki :)

  11. Avatar kabturek powiedział 16 days later:

    warto by byÅ‚o też wspomnieć o Å›wietnym git-svn jeÅ›li ktoÅ› musi siÄ™ zajmować kodem leżącym w repozytoriach SVN- bi directional sync – z wÅ‚asnego doÅ›wiadczenia – dziaÅ‚a Å›wietnie. MaÅ‚y tutorial:

    http://www.viget.com/extend/effectively-using-git-with-subversion/

  12. Avatar Jacek Becela powiedział 25 days later:

    Git rzadzi, wreszcie moge branczowac i przede wszystki mergowac BEZ BOLU, czesto i gesto. Dodtakowo tandem Git + GitHub i poprostu jestem w niebie, czemu dalem wyraz w jednym akapicie tego posta

  13. Avatar mulander powiedział about 1 month later:

    Jarosław Zabiełło napisał:

    >>Jakoś Bazaar nie może się przebić. Sun wybrał Mercurial, a większość >>projektów w Ruby przechodzi masowo na Gita i korzysta z githuba.

    Mysql przeszedÅ‚ z Bitkeepera na Bazaar. Pomimo przejÄ™cia przez Sun, który postanowiÅ‚ standaryzować swoje projekty na Mercurial. WiÄ™c nie można powiedzieć by bazaar nie miaÅ‚ przebicia. Dodajmy do tego fakt iż Canonical stoi mocno za tym narzÄ™dziem – i mamy caÅ‚kiem dobrÄ… konkurencje. Systemy wersjonowania przeżywajÄ… obecnie podobnÄ… sytuacje jak frameworki do tworzenia aplikacji www. Szkoda tylko, że w tym caÅ‚ym zamieszaniu – maÅ‚o kto dostrzega tak ciekawe rozwiÄ…zania jak te, które proponuje darcs

  14. Avatar nFs powiedział 2 months later:

    A moze ktos polecic jakies dobre HOWTO nt. gita?

  15. Avatar RaVbaker powiedział 9 months later:

    @nFs:

    http://git-scm.com/course/svn.html#

    :-)

(leave url/email »)

   Pomoc jÄ™zyka formatowania Obejrzyj komentarz