Wykład otwarty na temat systemu kontroli wersji Git

Studenckie Koło Naukowe Linuksa i Wolnego Oprogramowania działające przy Politechnice Śląskiej zaprasza na wykład otwarty na temat systemu kontroli wersji Git, który odbędzie się 14 marca 2012 w sali 106 budynku A rybnickiego Kampusu (Rybnik, ul. Rudzka 13A) o godzinie 17:00.

Praca programistyczna, czy to nad nowo powstającym kodem, czy związana z modyfikowaniem dotychczasowego kodu może okazać się niezwykle trudna jeśli jedyną wersją danych jest ta ostatnio powstała. Często chcielibyśmy mieć możliwość przywrócenia starszej wersji i wglądu w historię projektu, nad którym pracujemy. Odpowiedzią na tą potrzebę są systemy kontroli wersji. Upraszczają one utrzymanie kodu i kontrolę wersji w miarę postępów w pracy.

Dostępnych jest wiele otwartych systemów kontroli wersji: cvs, svn, git, mercurial. Dlaczego lubimy Gita?

Dlatego, że w większości naszych projektów nie jesteśmy sami. Dlatego, że pracujemy w wiele osób i każdy rozbudowuje jedynie część całego projektu. Rodzi to szereg problemów w przypadku gdy kilka osób wprowadza zmiany w jednym miejscu. Git umożliwia stosunkowo proste rozwiązanie takich konfliktów.

Podczas wykładu Marcin Jabrzyk i Piotr Hajduga zaprezentują jakie cechy Gita sprawiają, że używa się go wygodnie w wieloosobowych projektach i pokażą w praktyce, jak wygląda praca z tym narzędziem zarówno w systemach GNU/Linux jak i w systemach firmy Microsoft.

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

29 odpowiedzi na „Wykład otwarty na temat systemu kontroli wersji Git”
  1. Awatar Piotr Hajduga
    Piotr Hajduga

    Oj, nie dopisałem, że wykład odbędzie się o godzinie 17:00 🙂

    1. Awatar sirmacik
      sirmacik

      Dorzuciłem (;

    2. Awatar admo
      admo

      Czy wykład zostanie nagrany i umieszczony w sieci?

      1. Awatar Piotr Hajduga
        Piotr Hajduga

        Kilka osób o to pytało. Myślę o tym i jeśli uda mi się zorganizować sprzęt to postaram się to zrealizować, ale czasu jest mało więc nic nie obiecuję.

        1. Awatar Łukasz Siwiński
          Łukasz Siwiński

          Czy udało się nagrać wykład?

          1. Awatar Marcin Jabrzyk
            Marcin Jabrzyk

            Wykład odbędzie się w środę i jeszcze nie wiadomo czy uda się go nagrać.

  2. Awatar Mercurial
    Mercurial

    Dlaczego lubimy git-a, smieszne, a czego niby brakuje mercurialowi co nie ma GIT ?

    1. Awatar Filip
      Filip

      Mają prawo lubić co chcą, a Ty masz prawo lubić coś innego 🙂 Nie widzę w tym nic śmiesznego.

    2. Awatar tomaszkubacki
      tomaszkubacki

      mercurial nie ma swojego Githuba

      1. Awatar Krystian
        Krystian

        A Bitbucket?

        1. Awatar tomaszkubacki
          tomaszkubacki

          wtedy kiedy Github byl juz bardzo fajny Bitbucket raczkowal a teraz to nawet nie wiem, ale bardzo chetnie poznalbym opinie kogos kto z tego uzywam na codzien.

          1. Awatar Vigud
            Vigud

            Używam raz na tydzień, głównie wrzucam zmiany i oglądam pliki przez interfejs na www. Dlatego nie umiem powiedzieć nic ponad to, że to działa. Może jeszcze dorzucę, że Bitbucket – w przeciwieństwie do GitHuba – pozwala prowadzić prywatne repozytorium za darmo. No i obsługuje Mercuriala lub Gita.

    3. Awatar Michal Schulz
      Michal Schulz

      Dlaczego lubimy kanapki z szynka, smieszne, a czego niby brakuje kanapkom z dzemem?

      Wyklad otwarty jest na temat Git.

    4. Awatar Piotr Hajduga
      Piotr Hajduga

      A ja dam okejke na ten komentarz, bo sprowokowal fajna dyskusje. Zapraszam do Koła, kazda wymiana wiedzy jest wartosciowa. Fakt, Mercurial jest rowniez bardzo dobrym VCSem. Pare razy korzystalem jako uzytkownik, nigdy jako deweloper. Chce zaprezentowac Gita z punktu widzenia programisty ale chetnie posluchalbym czegos wiecej o Mercurialu, skoro nawet Linus nie mial odwagi o nim nic zlego powiedziec 🙂

      1. Awatar Mercurial
        Mercurial

        W mojej wypowiedzi chopdzilo mi bardziej oto ze GIT zostal w moim odczuci przedstawiony jako jedyny "slyszny" system DVCS, mieszkanie CVS SVN HG I GIT-a w jednym worku to blad. Pracuje na obu systemach, ale nie spodobalo mi sie zdanie "Dostępnych jest wiele otwartych systemów kontroli wersji: cvs, svn, git, mercurial. Dlaczego lubimy Gita" wg mnie sa jakies SVN-y CVS-y Mercurial i jest GIT ! w ktorym mozemy "…Git umożliwia stosunkowo proste rozwiązanie takich konfliktów." .

        1. Awatar Piotr Hajduga
          Piotr Hajduga

          Może faktycznie, nieco przewrotnie zabrzmiały te sformułowania w tym abstrakcie. W każdym razie, wyszło to całkowicie przypadkiem i nie było moją intencją wywyższenie Gita nad innymi VCSami, w szczególności DVCSami, a jedynie wprowadzenie osób nie znających tego narzędzia do tematu. Ale myślę, że teraz jest już wszystko jasne 🙂

  3. Awatar Tomek
    Tomek

    ja też bym chętnie ten wykład w sieci zobaczył.

  4. Awatar NIC
    NIC

    Lubimy gita bo:
    1. Łatwo dostępny.
    2. Ma darmowe serwery do zastosowań domowych. Taki dysk twardy, ale z historią.
    3. Idealny system kopii zapasowych prac dyplomowych 🙂
    4. Działa szybko.
    5. Prosty w obsłudze. Ma duże możliwości.

    Praca z gitem na Windowsie: na wirtualnej maszynie z linuksem 🙂 Serio 🙂

    Inne:
    1. Mercurial – jest wolny. Zawsze jak aktualizuję Firefoksa to zastanawiam się że proces żyje 🙂
    2. SVN – jednak technika gałęziowa GITa jest lepsza – trudniej stracić dane.
    3. CVS – w dalszym ciągu nie umiem go używać… zbyt toporny.
    4. Bazaar – instalacje jest koszmarem i nie mam tego systemu kontroli wersji.
    Podsumowując: GIT jest popularniejszy. Będzie ciężko takiemu HG coś wskórać, musiałby być klasę lepszy, a nie jest. Przypominam że ciągle sporo projektów siedzi na SVN – tam mogłoby HG uderzyć, ale może być już za późno… Widzę sporo projektów, np. Wireshark mający dwa repo – SVN i GITa (w obwodzie).

    Git w 3 minuty:
    1. mkdir r && cd r && git init –bare
    2. export RP=$PWD && cd ..
    3. mkdir w && cd w
    4. git init
    5. git remote add origin $PWD
    6. echo "test" > test.c
    7. git status
    8. git diff
    9. git add test.c
    10. git status
    11. git diff
    12. git commit # jakiś tam tekst…
    13. echo "qwerty" >> test.c
    14. git status
    15. git diff
    16. git add test.c
    17. git commit –amend
    18. git push origin master
    19. git branch
    20. git branch -av
    21. git log –decorate –stat
    # inne użyteczne: pull, reset, rebase, cherry-pick, mergetool, instaweb

    1. Awatar Krystian
      Krystian

      Mercurial jest wolny? Google twierdzi co innego:

      "As a benchmark, Git and Mercurial repositories were seeded with approximately 1500 files totaling 35 M of data. The servers were running in Chicago and the clients in Mountain View (51 ms ping time). The operation of cloning the remote repository (similar to a initial checkout in traditional version control systems) averaged 8.1 seconds for Mercurial and 178 seconds for Git (22 times slower). A single file in the repository was then changed 50 times and the clients pulled the updates. In this case, Mercurial took 1.5 seconds and Git required 18 seconds (12 times slower). When the Git protocol was used instead of HTTP, Git's performance was similar to Mercurial (8.7 seconds for cloning, 2.8 seconds for the pull)."
      http://code.google.com/p/support/wiki/DVCSAnalysi…

      "Praca z gitem na Windowsie: na wirtualnej maszynie z linuksem 🙂 Serio 🙂 "

      To ja dziękuję. Mercurial dla Windows jest w wersji x86 i x64.
      http://mercurial.selenic.com/downloads/

      1. Awatar wladca_kodu
        wladca_kodu

        Potwierdzam – używamy GITa na co dzień w dużym projekcie i większość osób się zgadza, że GIT jest dość powolny. No i w ogóle git jest miejscami dość magiczny – mercuriala znacznie łatwiej się nauczyć.

    2. Awatar Michal Schulz
      Michal Schulz

      > 1. Łatwo dostępny.

      Tak jak wszystkie inne systemy kontroli wersji

      > 3. Idealny system kopii zapasowych prac dyplomowych 🙂

      Oczywiscie! Tak samo jak kazdy inny system kontroli wersji.

      > 5. Prosty w obsłudze.

      W porownaniu do mercurial-a zbyt skomplikowany.

      > 1. Mercurial – jest wolny. Zawsze jak aktualizuję Firefoksa to zastanawiam się że proces żyje 🙂

      Mam podobne odczucia w przypadku Git.

      > 2. SVN – jednak technika gałęziowa GITa jest lepsza – trudniej stracić dane.

      Pod tym wzgledem kazdy DVCS jest lepszy niz VCS

      > Przypominam że ciągle sporo projektów siedzi na SVN – tam mogłoby HG uderzyć

      Tam tez miedzy innymi HG uderza.

    3. Awatar Mercurial
      Mercurial

      Dobrze napisane GIT jest popularniejszy, nie wiem w czym jest klase wyzszy… uzywam obu systemow, i znam je bardzo dobrze. Mercurial dawno swoja funkcjonalnoscia przegonil GIT-a ktory prawie sie nie rozwija. Nie wiem czy wiesz co to jest LargeFiles extension, graft (cherry-pick przy ktorym git-owski sie chowa), hg phases, moglbym wymieniac dalej… GIT ma github-a i temu zawdziecza swoja popularnosc, jesli chodzi o funkcjonalnosc,latwosc uzycia, to niestety GIT jest daleko w tyle za HG.

  5. Awatar Vigud
    Vigud

    Nie obsługuje pustych katalogów.

    1. Awatar SeeM
      SeeM

      Kłopot wrzucić pusty plik tenetowy do katalogu? To akurat nie najwięszy problerm z gitem, tylko jego trudna obsługa. Jest już sporo "nakładek" na gita, nawet tekstowych, co świadczy o zaplątaniu z komendami.

      1. Awatar Vigud
        Vigud

        Jaki plik?

    2. Awatar Michal Schulz
      Michal Schulz

      ZTCW Mercurial tez nie obsluguje pustych katalogow.

  6. Awatar Mateusz Tymek
    Mateusz Tymek

    Na codzień korzystam z obu systemów kontroli wersji. Z mojego doświadczenia Mercurial był trochę łatwiejszy w nauce, ale jego główna wada niepraktyczny system branchy. I to w zasadzie tyle dla codziennej pracy, reszta to kwestia gustu.

    Prędkość? Mercurial jest zauważalnie wolniejszy, ale nie na tyle żeby to w czymkolwiek przeszkadzało.

    "Git is MacGyver, Mercurial is James Bond": http://importantshock.wordpress.com/2008/08/07/gi…

    1. Awatar wladca_kodu
      wladca_kodu

      ale jego główna wada niepraktyczny system branchy

      Hę? Co jest nie tak z systemem branchy w Hg?

      1. Awatar Mateusz Tymek
        Mateusz Tymek

        Mercurial zapisuje informacje o aktualnej gałęzi przy każdym commicie. Po połączeniu takiej gałęzi nie można już jej usunąć – zostaje w repo do końca, plącząc się przy poleceniach typu "hg push". Zamiast po prostu korzystać z tak zwanych "feature branches", muszę trzymać kopie repo w oddzielnych katalogach, lub korzystać z rozszerzenia "local branches" (które ma swoje ograniczenia).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *