2011-08-08 26 views
6

Tôi có hai máy chủ khác nhau, mỗi máy chạy một cài đặt Ubuntu. Trên cả hai, tôi đã thiết lập env LESS=-FerX để đảm bảo rằng đầu ra git log được hiển thị độc đáo. Ngoài ra, gói dòng được bật.Làm thế nào để sửa đầu ra log git (thiếu dòng trong ít hơn)?

Trên một trong các máy chủ, nếu tôi chạy git log và có các dòng được bọc động, các dòng trên cùng sẽ biến mất.

Ví dụ:

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

Output trên Server 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 
: 

Output trên Server 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 
: 

Bất kỳ ý tưởng làm thế nào để sửa lỗi này?

+0

Chỉ cần đoán khi gặp sự cố khi chụp: Nếu bạn sử dụng tùy chọn '--no-pager', nó có thay đổi gì không? – Andy

Trả lời

6

Một lần nữa, tôi tìm câu trả lời cho câu hỏi của riêng mình chỉ sau vài phút hỏi.

Tắt vấn đề là thông số -r thành less. Thay vào đó, nó phải là một số -R.

Từ manpage:

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

Đối với một số reson không biết đến tôi, chữ thường -r hoạt động tốt trên các máy chủ khác.

+0

Tôi cũng gặp phải vấn đề này, nhưng ít hơn đến từ git config core.pager (câu trả lời khác thảo luận) thay vì môi trường của riêng tôi. Thay đổi core.pager thành less -R đã giải quyết được vấn đề. – mppf

4

Có lẽ bạn biết điều này, và bạn có thể đã thử nó, nhưng kể từ khi bạn không đề cập đến nó:

man git config chứa (tôi nhấn mạnh):

core.pager 

Lệnh rằng git sẽ sử dụng để phân trang đầu ra. Có thể được ghi đè bằng biến môi trường GIT_PAGER. Lưu ý rằng git đặt biến môi trường LESS thành FRSX nếu nó không được đặt khi nó chạy máy nhắn tin. Người ta có thể thay đổi các cài đặt này bằng cách đặt biến LESS thành một số giá trị khác. Ngoài ra, các cài đặt này có thể được ghi đè trên cơ sở dự án hoặc toàn cầu bằng cách đặt tùy chọn core.pager. Việc đặt core.pager không ảnh hưởng đến hành vi biến môi trường LESS ở trên, vì vậy nếu bạn muốn ghi đè cài đặt mặc định của git theo cách này, bạn cần phải rõ ràng. Ví dụ, để tắt tùy chọn S theo cách tương thích ngược, hãy đặt core.pager xuống ít hơn - + $ LESS -FRX. Điều này sẽ được chuyển tới shell bởi git, nó sẽ dịch lệnh cuối cùng thành LESS = FRSX less - + FRSX -FRX.

Các vấn đề liên quan