Virtualenv
Ponieważ lubię testować różne, często mało popularne Pythonowe biblioteki, zazwyczaj zamiast domyślnego menadżera pakietów używam easy_install lub pip. Nie zawsze pamiętam o usuwaniu niepotrzebnych pakietów, do tego dochodzą zależności i powoli robi się w systemie syf. Sytuację ratuje jednak virtualenv, który pozwala szybko zbudować piaskownicę.
Ponieważ na zaliczenie mam napisać grę sieciową, jako główny język wybrałem Pythona. Z racji tego, że na docelowym komputerze nie ma ani twisted ani pyglet, zbudowałem własne środowisko w którym rozwijam projekt.
piotrek@archbook# mkdir pysandbox piotrek@archbook# cd pysandbox piotrek@archbook# virtualenv . New python executable in ./bin/python Installing setuptools............done. piotrek@archbook# source bin/activate (pysandbox)piotrek@archbook# easy_install twisted ... (pysandbox)piotrek@archbook# easy_install pyglet ...
Hg vs Git
Jakiś czas temu google ogłosiło że oprócz svn, doda możliwość korzystania z mercuriala. Dodatkowo, umieścili wytłumaczenie dlaczego z trzech najpopularniejszych DVCS wybrali właśnie hg. Testowana była przede wszystkim wydajność transferu danych i szczerze mówiąc byłem mocno zaskoczony słabymi wynikami gita. Ponieważ akurat przygotowałem parę plików, wypróbowałem oba programy, tworząc nowe repozytoria i wysyłając kod odpowiednio do bitbucket i github.
piotrek@archbook# du -hca pysandbox | tail -n1 25M razem
Na początku mercurialem wysyłam na bitbucket:
piotrek@archbook# hg init piotrek@archbook# hg add . piotrek@archbook# hg commit -m init piotrek@archbook# time hg push http://bitbucket.org/Husio/pysandbox/ pushing to http://bitbucket.org/Husio/pysandbox/ searching for changes http authorization required realm: Bitbucket.org HTTP user: Husio password: bb/acl: Husio is allowed. accepted payload. quota: 9.1 MB in use, 150.0 MB available (6.05% used) hg push http://bitbucket.org/Husio/pysandbox/ 3,51s user 0,15s system 0% cpu 6:39,46 total
A następnie dla porównania git i github:
piotrek@archbook# git init piotrek@archbook# git add . piotrek@archbook# git commit -m init piotrek@archbook# git remote add origin git@github.com:husio/pysandbox.git piotrek@archbook# time git push origin master Counting objects: 1814, done. Delta compression using 2 threads. Compressing objects: 100% (1717/1717), done. Writing objects: 100% (1814/1814), 6.74 MiB | 32 KiB/s, done. Total 1814 (delta 139), reused 0 (delta 0) To git@github.com:husio/pysandbox.git * [new branch] master -> master git push origin master 6,10s user 0,14s system 2% cpu 3:50,52 total
Nie wiem jakie zasoby przyznaje darmowym użytkownikom każdy z portali, ale prawdopodobnie o wiele więcej niż jestem w stanie wysłać używając neostrady 1MB. Starałem się wykonać jak najbardziej obiektywne testy, używając domyślnych ustawień obu programów i popularnych opcji. Wyraźnie jedna widać, że wysyłanie tego samego zbioru plików mercurialem trwa dwa razy dłużej niż gitem. Dodatkowo, przez całe 6 minut, hg nie wypisał ani jednego komunikatu, więc nie wiedziałem czy coś robi, czy się zawiesił lub na coś czeka. Dopiero gdy skończył pracę, wydrukował podsumowanie (git przez cały czas pokazuje ile procent już przesłał). Był taki czas że chciałem nauczyć się hg żeby w razie potrzeby umieć z niego korzystać. Teraz jakoś odeszła mi ochota..
grizz
24.08.2009
Jeszcze miłośnicy mercuriala podnoszą, ze ten jest znacznie łatwiejszy w przyswojeniu... doświadczyłeś tej łatwości?
Husio
24.08.2009
Nie znam mercuriala na tyle żeby móc powiedzieć, że jest łatwiejszy od gita. Gita znam jednak na tyle, żeby móc powiedzieć, że jest łatwiejszy od mercuriala ;)
Używałem hg bardzo krótko i jedynie podstawowych poleceń. Niewiele różnią się od tych które używa się w gicie.
salmon
24.08.2009
jako dodatek do virtualenv polecam virtualenvwrapper: http://www.doughellmann.com/projects/virtualenvwrapper/ bardzo dużo pomaga i ułatwia prace.
riklaunim
24.08.2009
porównaj czasy komitowania np. iso na lokalne repozytorim :)
grizz
24.08.2009
Nie bądź taki tajemniczy... tylko sam napisz co i jak ;)
zgoda
20.10.2009
BitBucket daje Ci 150MB/repo (możesz mieć ile chcesz), GitHub 300MB na wszystkie.
Ja się przesiadałem na DVCS z SVN i łatwiej mi było przyswoić Mercuriala - polecenia bardzo podobne i nie musiałem za często sięgać do dokumentacji. Git dopiero przede mną i nie kusi.