Zsh, Mercurial i prompt pokazujący stan repozytorium

Data publikacji: 2012-09-11 | Tagi:

Od jakiegoś czasu porzuciłem używanie basha na rzecz nieco innego i (wg. mnie) wygodniejszego shella jakim jest zsh.

Nie będę tu wychwalał jego zalet - dość powiedzieć, że lepiej czuję się pisząc w cokolwiek w zsh, niż w jakimkolwiek innym shellu. Dodatkowo zsh zostawia ogromny zapas możliwości konfiguracyjnych (włączając w to chociażby 3 różne prompty).

Drugim systemem, którego używam notorycznie jest hg (inaczej zwany mercurialem), czyli popularna alternatywa dla gita. Postępuję wg starej maksymy: "jeśli kod nie istnieje w systemie kontroli wersji, to nie istnieje w ogóle" i uważam, że ma ona zbawienny skutek dla moich projektów, szczególnie w przypadku awarii dysku, bądź potrzeby edycji kodu na zupełnie innym komputerze.

Sumując powyższe fakty oraz dodając to, że w konsoli spędzam 80% całego czasu, który spędzam przed komputerem, jasnym wydaje się być, że w międzyczasie szukam drobnych ułatwień, które czynią moje życie łatwiejszym.

Jednym z takich udogodnień jest niewielki projekcik Mercurial for ZSH, regulujący wygląd prompta zsh tak by odzwierciedlał stan aktualnego repozytorium hg (tego, w którego katalogu obecnie się znajdujemy). W wersji, którą znalazłem pakiet ten wyświetla w prompcie nazwę gałęzi oraz symbol oznaczający stan kodu (potrzeba lub brak potrzeby wykonania polecenia commit).

Jako, że sam korzystam z konsoli w kolorze stwierdziłem, że ostatnia funkcjonalność może być osiągnięta łatwiej przez zmianę koloru nazwy gałęzi. I tak od słowa do słowa zrobiłem fork projektu i wprowadziłem swoje poprawki. Od tego momentu zakomitowany kod wyświetla nazwę gałęzi w kolorze zielonym, natomiast niezgodność kodu z repozytorium i konieczność wykonania komendy commit sygnalizowana jest kolorem czerwonym.

Link do repozytorium znajdującego się na bitbucket.org

Aby zainstalować Mercurial for ZSH wystarczy wykonać:

hg clone https://pstankiewicz@bitbucket.org/pstankiewicz/mercurial-for-zsh

Następnie w pliku .zshrc dodać następującą linijkę:

source /path/to/this/repo/zshrc /path/to/this/repo/

Czyli jeśli repozytorium zostało sklonowane do katalogu:

/home/void/mercurial-for-zsh/

to wpis w pliku .zshrc powinien mieć następującą postać:

source /home/void/mercurial-for-zsh/zshrc /home/void/mercurial-for-zsh/


Oceń ten post:
Podziel się:

comments powered by Disqus

IT w obrazkach: