2015-09-21 19 views
7

Pomyślałem, że git clone używa STDERR.git clone pisze do sderr, dobrze, ale dlaczego nie mogę przekierować do stdout

Teraz chcę przekierować go na STDOUT, aby użyć tego hack.

Mam pewne problemy (używam również wspaniałej biblioteki stderred do automatycznego STDERR red).

Możesz zobaczyć problemy na załączonym obrazie, nie ma to większego sensu dla mnie ... proszę wyjaśnić, dlaczego tak się dzieje i jak uzyskać wszystkie dane wyjściowe do STDERR, aby móc poprawnie używać tee.

enter image description here

+0

Prawdopodobny duplikat wyjścia [git stderr nie może być potokiem] (http://stackoverflow.com/questions/4062862/git-stderr-output-cant-pipe) – kenorb

Odpowiedz

8

Podobnie jak wiele innych narzędzi unixowych, git-clone będzie ciszej, jeśli jest przekierowywany do potoku. Założeniem jest to, że wynik jest użyteczny dla człowieka i po prostu stanie na drodze programu. tee łamie to założenie, ale git nie może wiedzieć, co znajduje się na końcu rury.

Z git-clone manual ...

--progress

Status Postęp jest zgłaszane na standardowy strumień błędów domyślnie, gdy jest ona podłączona do terminala, chyba że -q jest określona. Ta flaga wymusza status postępu, nawet jeśli standardowy strumień błędów nie jest kierowany do terminala.

Musisz podać git clone --progress, aby wymusić wykonanie pełnego wyniku.

+0

Dziękuję ... Naprawiłem ten przypadek użycia, ale później zauważyłem, że 'git push' również pisze do STDERR, a także' wget' etc .. jaki jest więc cel, nie rozumiem ... Zainstalowałem 'stderred' i teraz zbyt wiele wyjść jest czerwonych:/ – davidhq

+0

@DavidKrmpotic Te narzędzia używają STDERR i STDOUT do oddzielania treści, którymi zainteresowany jest człowiek (postęp) od tego, co program jest zainteresowany (czy to działało, co zostało przekazane ...). Muszą przyjąć pewne założenia. To ['stderrd'] (https://github.com/sickill/stderred) wygląda fajnie. Możesz czarną listę git i wget, jeśli chcesz z 'STDERRED_BLACKLIST'. ** LUB ** utwórz normalny tekst na zielono i ciesz się świątecznym terminalem! – Schwern

+0

Nie zauważyłem opcji BLACKLIST .... ale w każdym razie, za dużo kłopotów, przestałem używać 'stderrd' niewystarczających korzyści, tylko komplikacje z koniecznością czarnej listy wielu narzędzi ... dziękuję za pomoc w główne pytanie ponownie, naprawdę pomogło – davidhq