2010-10-18 26 views
40

git log có tùy chọn --format đẹp để chỉ định cách định dạng đầu ra.Có cách nào để tùy chỉnh đầu ra của git đổ lỗi?

Nhưng git blame dường như không có giá trị tương đương, mặc dù kết quả mặc định là blame không hoàn toàn thân thiện với con người. Tôi muốn thấy ít hơn nhiều.

Ví dụ, thay vì:

5600cab7 js/sidebar/VehicleGrid.js  (Rene Saarsoo 2009-10-08 18:55:24 +0000 127) if (x > y) { 
b5f1040c js/map/monitoring/VehicleGrid.js (Mihkel Muhkel 2010-05-31 07:20:13 +0000 128)  return x; 

Tôi muốn có:

5600cab7 Rene Saarsoo (1 year ago)  127: if (x > y) { 
b5f1040c Mihkel Muhkel (5 months ago) 128:  return x; 

Tôi hình dung rằng tôi có thể viết một kịch bản để phân tích đầu ra của git blame --porcelain nhưng với sản lượng mặc định khủng khiếp của blame Tôi cảm thấy rằng ai đó ngoài kia chắc hẳn đã làm điều gì đó về nó.

Bất kỳ ý tưởng nào? Hoặc bất kỳ lời khuyên để thực hiện một kịch bản như vậy?

Chỉnh sửa: Giải quyết bằng cách viết small script.

+2

Bạn luôn có thể sử dụng 'git gui đổ lỗi ':-) –

+6

Vâng, tôi chắc chắn nó sẽ không hoạt động trên SSH. –

+1

nó sẽ hoạt động (ít nhất là khi cả hai bên sử dụng X Window) nếu bạn bật ** X11 Forwarding ** ... mặc dù tôi không khuyên bạn nên nó vì nó có thể chậm. –

Trả lời

2

Xem xét giao diện web như Trac hoặc Redmine tích hợp git blame kết quả, tôi cho rằng việc phân tích cú pháp như vậy đã được thực hiện.

Bạn có thể nhìn thấy trong Redmine Defect 3832 này một ví dụ với script ruby ​​này:

+0

Cảm ơn, nguồn này thực sự hữu ích. –

+0

** gitweb ** cũng bao gồm chế độ xem 'đổ lỗi' (và 'blame_incremental'), mặc dù nó được tắt theo mặc định (vì nó là CPU hog). –

18

Bạn có thể sử dụng định dạng đầu ra thay thế: git annotate hoặc git blame -c.

Bạn có thể thay đổi định dạng của ngày với --date=<format> tùy chọn (hoặc blame.date biến config), nơi <format> là một trong những tương đối, địa phương, mặc định, iso, RFC, ngắn. Xem git-blamegit-log trang web để biết chi tiết.

+0

Vâng, tùy chọn --date giúp một chút, nhưng nó vẫn không gần như tốt như tôi muốn nó được. Và chú thích tạo ra IMHO chỉ là một đầu ra xấu xí thay thế: P –

+0

+1 cho 'git blame -c'. Hoạt động tốt với awk. – Utopik

+0

@ReneSaarsoo: Có GUI cho đổ lỗi/chú thích, một trong số đó là 'git gui blame'. –

5

Đối với tôi, cờ -s hoạt động, bởi vì tất cả những gì tôi cần là ID SHA1, sau đó tôi tra cứu chi tiết. Một kịch bản chắc chắn có vẻ như quá mức cần thiết. Có thể cờ -s không có sẵn một năm trước?

+1

Sau khi sử dụng [tập lệnh nhỏ của tôi] (https://github.com/nene/config/blob/master/bin/git-praise) trong hơn một năm nay, tôi có thể nói đó là một nỗ lực rất nhỏ. Lá cờ -s là không đủ cho tôi - tôi thực sự quan tâm đến tác giả và ngày tháng, tôi không muốn đào sâu hơn nếu tôi có thể tránh được nó. Ngoài ra kịch bản của tôi tạo ra một đầu ra màu đẹp. –

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