Git Credential Helper

Git ciągle mnie zaskakuje modularnością i rozszerzalnością swojej architektury. W pracy mam standardowe zablokowane porty SSH, które są używane przez większość popularnych serwisów hostujących serwery gita (Giltab, Github); również mój prywatny serwer stoi na niestandardowym porcie, który padł ofiarą działu IT. W związku z tym, nie mogę korzystać z logowania przy pomocy kluczy SSH i od kilku lat, kiedy tylko chcę uzyskać dostęp do prywatnego repozytorium lub spushować jakąś zmianę, muszę korzystać z komunikacji przez HTTPS i wpisywać swoją nazwę użytkownika i hasło.

More
Published on April 10, 2017 and tagged as .

Generacja wersji

Wiele projektów open-source’owych wersjonuje się poprzez ustawienie na stałe w jakimś pliku (config.h, __version__.py, …) numerka, który jest podbijany przy okazji wydania nowej wersji. Nie podoba mi się takie podejście. Przede wszystkim zbędnie zaśmieca historię commitami mającymi niewiele wspólnego z faktycznymi zmianami w logice kodu. Poza tym nie dostarcza wystarczającej informacji o używanej wersji, która jest niezbędna np. przy zgłaszaniu błędów - jest to szczególnie uciążliwe gdy program wydawany jest stosunkowo rzadko.

More
Published on April 12, 2016 and tagged as .

Opisuj merge!

Changelog jest ważny. Changelog jest liniowy. Historia gita nie jest liniowa, ale może być dzięki przełącznikow git log --first-parent. Dzięki niemu nie zobaczymy wszystkich malutkich commitów wrzucanych na merge’owanego brancha, a jedynie sam merge commit. Dlatego właśnie ważne jest, żeby opisywać w nim ogół wprowadzanych zmian, a nie zostawiać jedynie standardowe “Merge branch ‘feat’ into ‘master’“. Bardzo to ułatwia późniejsze generowanie changeloga. Przykładowo, mój najnowszy wynalazek pokaże i ładnie sformatuje opis wszystkich zmian wprowadzonych od czasu ostatniego taga: More
Published on December 18, 2015 and tagged as .