2011-08-08 9 views
6

Mam dwa różne serwery, na których uruchamiana jest instalacja Ubuntu. Na obu ustawiłem env LESS=-FerX, który zapewnia, że ​​dane wyjściowe dziennika git są ładnie wyświetlane. Zawijanie linii jest włączone.Jak naprawić wyjście dziennika Git (brakujące linie w mniej)?

Na jednym z serwerów, jeśli uruchamiam git log i są zawijane dynamicznie linie, najwyższe linie znikają.

Na przykład:

log --pretty='format:%C(3)[%h] %Cgreen%an%Creset%n %cd %s %Cred%d%Creset' --graph 

Wyjście na Serwer 1:

* [1234457] John Doe 
| Date fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz 
fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo 
bar baz 
* [4567890] Richard Miles 
| Date fooooo bar baz 
: 

Wyjście na serwerze 2:

fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo bar baz fooooo 
bar baz 
* [4567890] Richard Miles 
| Date fooooo bar baz 
* [0815123] Mary Major 
| Date fooooo bar baz fooooo bar baz fooooo bar baz 
: 

jakiś pomysł jak to naprawić?

+0

Po prostu zgadujemy, że przy rozwiązywaniu problemów: jeśli użyjesz opcji '--no-pager', to coś zmieni? – Andy

Odpowiedz

6

Znów znajduję odpowiedź na moje własne pytanie kilka minut po zadaniu pytania.

Okazało się, że problemem był parametr -r na less. Powinien być zamiast tego -R.

Z podręcznika:

-R or --RAW-CONTROL-CHARS 
      Like -r, but only ANSI "color" escape sequences are output in "raw" form. 
      Unlike -r, the screen appearance is maintained correctly in most cases. 

jakiegoś reson nie znanego mi małą -r działa dobrze na z innego serwera.

+0

Wpadłem również na ten problem, ale mniej -r pochodziło z git config core.pager (które omawia inna odpowiedź), a nie z mojego własnego środowiska. Zmiana core.pager na less -R rozwiązało problem. – mppf

4

Może to wiem, a może próbowali go, ale ponieważ nie wspominając go:

man git config zawiera (Kopalnia nacisk):

core.pager 

Komenda że będzie git użyj do paginacji danych wyjściowych. Można go zastąpić zmienną środowiskową GIT_PAGER. Zauważ, że git ustawia zmienną środowiskową LESS na FRSX, jeśli nie jest ustawiona, gdy uruchamia pager. Można zmienić te ustawienia, ustawiając zmienną LESS na inną wartość. Alternatywnie, te ustawienia mogą być nadpisane w projekcie lub w skali globalnej, ustawiając opcję core.pager. Ustawienie core.pagera nie ma wpływu na powyższe zachowanie zmiennej środowiskowej LESS, więc jeśli chcesz w ten sposób zmienić ustawienia domyślne git, musisz być jednoznaczny. Na przykład, aby wyłączyć opcję S w sposób kompatybilny wstecz, ustaw core.pager na mniej - + $ LESS -FRX. Zostanie to przekazane do powłoki przez git, co spowoduje przetłumaczenie końcowego polecenia na LESS = FRSX less - + FRSX -FRX.

Powiązane problemy