2012-02-10 29 views
5

Một trong những đồng nghiệp của tôi thời gian gần đây nhận thấy sự khác nhau giữa lệnh bình thường git log, và và bí danh sau:Tại sao một số cam kết git ẩn bên trong vỏ Cygwin?

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative 

Sau một chút poking, chúng tôi phát hiện ra rằng nó có thể liên quan đến bash Cygwin.

Dưới đây là những phát hiện của chúng tôi:

  • git log --graph

    tất cả các cam kết có thể nhìn thấy

  • git log --oneline

    một số cam kết mất tích ... được rồi! chúng ta hãy chuẩn bị một báo cáo lỗi bằng cách chuyển hướng đầu ra vào một tập tin văn bản:

  • git log --oneline > test.txt

    Than ôi, tất cả các cam kết có thể nhìn thấy trong test.txt?!? Hãy điều tra thêm bằng cách tách biệt bí danh. Loại bỏ mã màu:

  • git log --graph --pretty=format:'%h - %d %s (%cr) <%an>'

    một số cam kết mất tích. Vì vậy, nó phải là một trong các biến ...

[... một số frobnications sau ...]

  • git log --graph --pretty=format:'%h - %d %s (%cr)'

    tất cả các cam kết có thể nhìn thấy

  • git log --graph --pretty=format:'%h - %d %s <%an>'

    tất cả các cam kết hiển thị

Có vẻ như vỡ sau khi một số kết hợp nhất định của biến. Trong trường hợp này là (%cr) <%an>

Tôi cũng đã thử cùng một kho lưu trữ trên linux và trên đó, nó hoạt động như mong đợi (nghĩa là tất cả các cam kết được hiển thị trong nhật ký).

Chúng tôi muốn biết tại sao điều này xảy ra.

+1

Bạn có cố gắng tránh ''>' 'và' '<' 'trong định nghĩa bí danh của bạn, để xem lệnh có chạy tốt hơn trong phiên Cygwin của bạn không? – VonC

+0

Loại bỏ các dấu ngoặc nhọn không giải quyết được vấn đề. Kỳ lạ thay, bây giờ một cam kết bổ sung xuất hiện trong nhật ký. Nhưng họ vẫn không phải ở đó. – exhuma

+0

Ok, chỉ cần kiểm tra. – VonC

Trả lời

1

Hãy thử những để có được gần gũi hơn với các nguyên nhân:

  • sử dụng Cygwin với một thiết bị đầu cuối khác nhau, nói xterm hay mintty.
  • đặt (hoặc bỏ đặt?) $PAGER và xem cách ảnh hưởng đến lỗi.
  • nếu $PAGERless, lưu các bản ghi từ bên less (S), và/hoặc -R để bật/tắt chế biến ANSI thoát, nếu bạn có màu sắc trên.
  • thử với --no-màu sắc, nếu bạn có màu sắc trên
  • kiểm tra cài đặt ngôn ngữ của bạn, $LC_ALL, $LANG, vv thử

LANG=C git log vv

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