Pokazywanie postów oznaczonych etykietą git. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą git. Pokaż wszystkie posty

22 listopada 2011

Jak przyśpieszyć git'a?

Na pewno sposobów jest wiele, jednak jednym z nich jest regularne odpalanie git gc (garbage collector).

Pamięć jednak jest zawodna, dlatego najlepszym pomysłem jest zautomatyzowanie procesu i ustawienie cyklicznego wywoływania procesu.

Do tego wystarczy pojedynczy wiersz w cronie. Jednakże jeżeli na co dzień uzywamy wielu repozytoriów, tych wpisów musiałoby być w cronie więcej.

By zachować w nim porządek chciałbym zaproponować inne podejście:

Tworzymy sobie plik ~/.gitrepos, do którego wpisujemy ścieżki projektów, które chcemy "utrzymać w czystości"


/media/truecrypt1/workspace/current/project_A/
/media/truecrypt1/workspace/current/project_B/
/media/truecrypt1/workspace/old/project_C/
/media/truecrypt1/workspace/another/project_D/

Potem już tylko crontab -e i wklejamy:

30 2 * * * cat ~/.gitrepos | xargs -I {} git --work-tree={} --git-dir={}.git gc

Taki wpis, codziennie w nocy o 2:30 będzie odpalał git gc dla każdego repozytorium z zapisanych katalogów. Użycie --work-tree oraz --git-dir jest konieczne, dlatego że domyślnie polecenie z crona jest odpalane w katalogu domowym.

PS. jeżeli nie lubisz/nie chcesz używać crona  w tradycyjny/trudniejszy sposób, zainstaluj sobie nakładkę graficzną gnome-schedule (sudo apt-get install gnome-schedule)

17 marca 2011

Show git branches by date

Zapragnąłem mieć taką funkcjonalność, git jednak takiej nie dostarcza.

Poszukałem i okazało się, że ponownie commandlinefu proponuje całkiem niezłe rozwiązanie, dające w efekcie:


15 stycznia 2011

"Lustrzane odbicie" polecenia git add -p, czyli co mi pomogło po pewnym code review.

Skończyłem w pracy robić pewne duże zadanie. Zrobiłem commita i pusha do odpowiedniego brancha do naszego gitowego repozytorium . Potem przyszła pora na code review. Kolega z zespołu zauważył parę miejsc, w których należało by jeszcze coś dodać/zmienić/usunąć. Informacje o tych poprawkach wysłał mi na e-mail.

dostałem mniej więcej taką listę:

1. W przypadku dwóch statycznych pól klasy zastosowałeś przedrostek m_, zamiast s_. Dostosować do reszty.
2. Lepiej było by, aby funkcja Foo zwracała nie tylko informacje o błędzie, lecz najlepiej jeszcze określała typ błędu.
3. Niepotrzebne podwójne wywołanie funkcji inicjalizującej  w linii 250 i 253.
4. itd.
5. itd.
..
18. itd

Rzeczy do poprawki były dość proste, lecz było ich jednak dość dużo. Wprowadziłem połowę i stwierdziłem, że sprawdzę, czy przypadkiem niczego w między czasie nie popsułem. Kompilacja przebiegła ok, instalacja - ok, uruchomienie - ok, nagle crash.

No i teraz pytanie, która z moich zmian spowodowała błąd? Dlatego, że w ówczesnym czasie debugowanie w naszym projekcie było bardzo kłopotliwe a wręcz wówczas niemożliwe stwierdziłem, że najszybciej będzie usunąć zmiany i zacząć je wprowadzać po kolei, stopniowo, za każdym razem upewniając się, że wszystko jest w porządku.

Jednak tych zmian było na tyle dużo, w tylu miejscach, że stwierdziłem, że wolałbym uniknąć usuwania tych zmian ręcznie, bądź wprowadzania ich od nowa. No i wybrnąłem z tej sytuacji, gdyż całą procedurę wykonałem praktycznie nie dotykając kodu za pośrednictwem mojego IDE. W tym wszystkim pomógł mi oczywiście GIT :)

1 września 2010

Rozwój GITa - ankieta

Krótki wpis.

Jeżeli jesteś zainteresowany rozwojem gita, chciałbyś mieć na niego wpływ i jesteś w stanie poświęcić swoje cenne 5 minut, wypełnij proszę poniższą ankietę:

https://www.survs.com/survey/MUPYR8UJ4B

więcej informacji na stronie: https://git.wiki.kernel.org/index.php/GitSurvey2010

25 lipca 2010

Git command of the day: git add --intent-to-add

Pierwszy post poświęcony serii git command of the day będzie opisywał pewien konkretny przełącznik jaki możemy zastosować w przypadku użycia komendy git-add, a mianowicie --intent-to-add, lub krótszy-równoważny -N.

Na początek krótki przykład zastosowania, a później szersze wyjaśnienie.

30 czerwca 2010

Projekt: git command of the day

W trakcie z gitem coraz częściej natykam się na ciekawe polecenia, przełączniki czy ogólnie rzecz mówiąc tricki. Postanowiłem rozpocząć projekt związany z publikacją krótkich artykułów na temat co ciekawszych komend gita. Jak już zapewne się domyślicie, będzie on publikowany pod nazwą git command of the day. Nie należy jednak sądzić, że owe artykuły będą dodawane codziennie. Jak tylko znajdę coś ciekawego, to będę się tym dzielił :)