2011-08-08 46 views
6

我有兩臺不同的服務器,每臺服務器都運行Ubuntu安裝。在他們兩個,我已經設置env LESS=-FerX這確保git日誌輸出很好地顯示。此外,線包裝打開。如何修復git日誌輸出(少於缺少的行)?

在其中一臺服務器上,如果我運行git log並且存在動態包裝的行,則最上面的行會消失。

例如:服務器1

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

輸出:

* [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 
: 

輸出服務器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 
: 

任何想法如何解決這一問題?

+0

只是猜測問題:如果使用'--no-pager'選項,它會改變什麼? – Andy

回答

6

同樣,我在問了幾分鐘後才找到自己問題的答案。

原來的問題是-r參數爲less。它應該是-R

從手冊頁:

-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. 

對於一些振振有辭不知道對我來說,-r適用於其他服務器的罰款小寫。

+0

我也遇到了這個問題,但更少的是來自git config core.pager(這是另一個答案討論的)而不是我自己的環境。將core.pager改爲less -R解決了問題。 – mppf

4

也許你知道這一點,你可能已經嘗試過了,但因爲你沒有提到它:

man git config包含(重點煤礦):

core.pager 

命令git會用於分頁輸出。可以用GIT_PAGER環境變量覆蓋。請注意,如果git在運行尋呼機時未設置,那麼git會將LESS環境變量設置爲FRSX。可以通過將LESS變量設置爲其他值來更改這些設置。或者,可以通過設置core.pager選項在項目或全局基礎上覆蓋這些設置。設置core.pager對上面的LESS環境變量行爲沒有影響,所以如果你想以這種方式覆蓋git的默認設置,你需要明確。 例如,要以向下兼容的方式禁用S選項,請將core.pager設置爲less - + $ LESS -FRX。這將通過git傳遞給shell,這將最終命令轉換爲LESS = FRSX less - + FRSX -FRX。