Barvy v git log

Jan S

Barvy v git log
« kdy: 21. 02. 2018, 18:52:31 »
Zdravim,
potrebuji zpracovat vystup z prigazu git log, ktery ovsem do vystupu vklada specialni znaky pro barveni v terminalu. Me tyto znaky delaji neplechu.
Nechci barveni vypinat globalne v konfiguraci. Zkousel jsem:
git log --no-color i git log --color=never (coz by melo byt ekvivalentni), nicmene bez uspechu. Google vede take jen timto smerem...
Nejake napady?
Diky
P.S. Git mam verze 1.7 a bohuzel s tim nic nenadelam...


gitter

Re:Barvy v git log
« Odpověď #1 kdy: 21. 02. 2018, 20:39:43 »
A nestaci git-u nakecat doslovne, ze mas hlupy terminal :-). V mojom testovacom pripade sa sice git trosku stazuje, ale ide to:
$ TERM=dumb; git log
WARNING: terminal is not fully functional
-  (press RETURN)
....

sdfasdfasfasfd

Re:Barvy v git log
« Odpověď #2 kdy: 21. 02. 2018, 20:44:41 »
v terminalu nejlepe tig
ncurses program tig zobrazujici historii, status, diff komitu.

Jan S

Re:Barvy v git log
« Odpověď #3 kdy: 21. 02. 2018, 21:58:17 »
Potreba vznikla v ramci pythonovskeho skriptu. Git je volany pomoci modulu sh. Takze idealni by bylo reseni bud primo pri volani gitu, a nebo ty znaky pak nejak vykuchat v pythonu.
Kuchani jsem skousel regexy, jenze ty ke znakum pristupovali jako ke by byly rozepsane pomoci "\" a nadelali jen dalsi paseku.

mon

Re:Barvy v git log
« Odpověď #4 kdy: 21. 02. 2018, 22:37:42 »
a git log --format=format:...  daky vlastny format aby si vytiahol co treba? to bolo uz v 1.7 - https://git-scm.com/docs/pretty-formats/1.7.0


Kit

Re:Barvy v git log
« Odpověď #5 kdy: 21. 02. 2018, 23:13:45 »
Zkusil jsem na hulváta
Kód: [Vybrat]
git log | heada kupodivu to jede bez barviček. Stačí jen "head" nahradit vhodnějším programem, třeba v Pythonu.

Jan S

Re:Barvy v git log
« Odpověď #6 kdy: 22. 02. 2018, 11:44:18 »
a git log --format=format:...  daky vlastny format aby si vytiahol co treba? to bolo uz v 1.7 - https://git-scm.com/docs/pretty-formats/1.7.0
Prikaz, ktery chci pouzit, obsahuje dokonce --pretty=format:... vytazeni konkretni polozky (napr. %H), ani hratky s baravmi (napr. %Creset) pacientovi nepomahaji. Pro predstavu:
Kód: [Vybrat]
>>> repr(sh.git.log('--no-color','-n','1',"--pretty=format:%H"))
'\x1b[?1h\x1b=\r740bb4525a909c51717224ddb82b3c2c86219a61\x1b[m\n\r\x1b[K\x1b[?1l\x1b>'

Zkusil jsem na hulváta
Kód: [Vybrat]
git log | heada kupodivu to jede bez barviček. Stačí jen "head" nahradit vhodnějším programem, třeba v Pythonu.
Diky za tip, ale priznavam se, ze jsem dostatecna lama na to, abych nahradu head nedal... Zkousel jsem ty regexy, ale tam je potiz, ze na vystup z sh se musi nejdriv aplikovat repr nebo unicode. Unicode odfiltruje znaky \x, \r, \n, ale zbydou tam ty 1b,1h a spol.

Priklad vyse jsem nakonec vyresil pomoci :
Kód: [Vybrat]
>>> repr(sh.git('rev-parse','HEAD'))
'740bb4525a909c51717224ddb82b3c2c86219a61\n'
Ale stejne by me zajimalo reseni barvicek z vyssiho principu...

P.S. Asi by se to dalo vyresit pomoci modulu GitPython, ale na tech par volani je sh.git jednodussi (napr. nemusim resit umisteni korenoveho adresare gitu)...

Danny

Re:Barvy v git log
« Odpověď #7 kdy: 22. 02. 2018, 12:00:57 »
Diky za tip, ale priznavam se, ze jsem dostatecna lama na to, abych nahradu head nedal...
v případě úplně nejhorším poslouží "cat"

Voyta

Re:Barvy v git log
« Odpověď #8 kdy: 22. 02. 2018, 12:06:25 »
Barvicky jsou jedna vec, ale u nas se rozmohla moda pridavat do commit messages emoji  :) ;) ;D :( :o Jestli vam to taky nerozhodi parser.

adsfasdfasdfasdf

Re:Barvy v git log
« Odpověď #9 kdy: 22. 02. 2018, 12:14:44 »
Barvicky jsou jedna vec, ale u nas se rozmohla moda pridavat do commit messages emoji  :) ;) ;D :( :o Jestli vam to taky nerozhodi parser.

u nas mame taky emoji <|>

Jan S

Re:Barvy v git log
« Odpověď #10 kdy: 22. 02. 2018, 12:27:57 »
Barvicky jsou jedna vec, ale u nas se rozmohla moda pridavat do commit messages emoji  :) ;) ;D :( :o Jestli vam to taky nerozhodi parser.
Tak v commit message se to da resit vytahanim za usi, moje barvicky produkuje samotny git...

Voyta

Re:Barvy v git log
« Odpověď #11 kdy: 22. 02. 2018, 13:33:14 »