Một trường hợp mà bạn có thể quan tâm một cách hợp pháp là khi bạn muốn phân biệt giữa lỗi khoảng trắng "cũ" (bạn có thể muốn giữ lại vì lý do kế thừa) và lỗi khoảng trắng "mới" (bạn muốn tránh).
Do đó, Git 2.5+ (Quý 2 năm 2015) sẽ đề xuất một tùy chọn cụ thể hơn để phát hiện khoảng trắng.
Xem các cam kết 0e383e1 , 0ad782f và d55ef3e [26 tháng 5 năm 2015] của Junio C Hamano ( gitster
) .
(Được hợp nhất bởi Junio trong cam kết 709cd91 , ngày 11 tháng 6 năm 2015)
diff.c
: --ws-error-highlight=<kind>
tùy chọn
Theo truyền thống, chúng tôi chỉ quan tâm đến các ngắt khoảng trắng được giới thiệu trong các dòng mới.
Một số người cũng muốn vẽ các khoảng trắng ngắt trên các dòng cũ. Khi họ nhìn thấy một khoảng trắng trên một dòng mới, họ có thể phát hiện ra cùng một loại ngắt khoảng trắng trên dòng cũ tương ứng và muốn nói "À, những dấu ngắt đó ở đó nhưng chúng được kế thừa từ dòng gốc, vì vậy đừng chạm vào chúng vì hiện nay."
Giới thiệu --ws-error-highlight=<kind>
tùy chọn, cho phép họ vượt qua một dấu phẩy tách ra danh sách old
, new
và context
để xác định dòng gì để nổi bật khoảng trắng lỗi trên.
Các tài liệu hiện nay bao gồm :
--ws-error-highlight=<kind>
Đánh dấu lỗi khoảng trắng trên các dòng được chỉ định bằng <kind>
màu được chỉ định bởi color.diff.whitespace
.
<kind>
là một dấu phẩy tách ra danh sách old
, new
, context
.
Khi tùy chọn này không được đưa ra, chỉ các lỗi khoảng trắng trong new
các dòng được đánh dấu.
Ví dụ: --ws-error-highlight=new,old
đánh dấu lỗi khoảng trắng trên cả dòng đã xóa và dòng thêm.
all
có thể được sử dụng như một tay ngắn cho old,new,context
.
Ví dụ: cam kết cũ có một lỗi khoảng trắng ( bbb
), nhưng bạn chỉ có thể tập trung vào các lỗi mới (ở cuối still bbb
và ccc
):
(kiểm tra thực hiện sau t/t4015-diff-whitespace.sh
)
Với Git 2.26 (Q1 2020), diff-*
họ lệnh con của hệ thống ống nước giờ đây chú ý đến diff.wsErrorHighlight
cấu hình mà trước đây đã bị bỏ qua; điều này cho phép " git add -p
" cũng hiển thị các vấn đề về khoảng trắng cho người dùng cuối.
Xem cam kết da80635 (31 tháng 1 năm 2020) bởi Jeff King ( peff
) .
(Được hợp nhất bởi Junio C Hamano - gitster
- in cam kết df04a31 , ngày 14 tháng 2 năm 2020)
diff
: chuyển diff.wsErrorHighlight sang cấu hình "cơ bản"
Người ký tên: Jeff King
Chúng tôi phân tích cú pháp diff.wsErrorHighlight git_diff_ui_config()
, nghĩa là nó không có hiệu lực đối với các lệnh về hệ thống ống nước, chỉ đối với các phần tử như git diff
chính nó.
Điều này hơi khó chịu vì nó có nghĩa là các tập lệnh như add--interactive
, tạo ra sự khác biệt về màu sắc mà người dùng có thể nhìn thấy, không tôn trọng tùy chọn .
Chúng tôi có thể dạy tập lệnh đó để phân tích cú pháp cấu hình và chuyển nó cùng --ws-error-highlight
với hệ thống ống nước khác. Nhưng có một giải pháp đơn giản hơn.
Sẽ an toàn hợp lý cho hệ thống ống nước nếu tuân theo tùy chọn này, vì nó chỉ hoạt động khi màu được bật. Và bất kỳ ai phân tích cú pháp đầu ra được tô màu đều phải đối phó với thực tế color.diff.*
có thể thay đổi đầu ra chính xác mà họ thấy; những tùy chọn đó là một phần của git_diff_basic_config()
nó kể từ khi ra đời trong 9a1805a872 (thêm một lệnh gọi lại cấu hình khác biệt "cơ bản", 2008-01-04, Git v1.5.4-rc3).
Vì vậy, chúng tôi chỉ có thể di chuyển nó sang cấu hình "cơ bản", sửa lỗi add--interactive
, cùng với bất kỳ tập lệnh nào khác trong cùng một chiếc thuyền, với nguy cơ rất thấp làm tổn thương bất kỳ người dùng hệ thống ống nước nào.