Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Jan S 21. 02. 2018, 18:52:31

Název: Barvy v git log
Přispěvatel: Jan S 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...
Název: Re:Barvy v git log
Přispěvatel: gitter 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)
....
Název: Re:Barvy v git log
Přispěvatel: sdfasdfasfasfd 21. 02. 2018, 20:44:41
v terminalu nejlepe tig
ncurses program tig zobrazujici historii, status, diff komitu.
Název: Re:Barvy v git log
Přispěvatel: Jan S 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.
Název: Re:Barvy v git log
Přispěvatel: mon 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
Název: Re:Barvy v git log
Přispěvatel: Kit 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.
Název: Re:Barvy v git log
Přispěvatel: Jan S 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)...
Název: Re:Barvy v git log
Přispěvatel: Danny 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"
Název: Re:Barvy v git log
Přispěvatel: Voyta 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.
Název: Re:Barvy v git log
Přispěvatel: adsfasdfasdfasdf 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 <|>
Název: Re:Barvy v git log
Přispěvatel: Jan S 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...
Název: Re:Barvy v git log
Přispěvatel: Voyta 22. 02. 2018, 13:33:14
https://gist.github.com/parmentf/035de27d6ed1dce0b36a