Đôi khi thật tuyệt khi có thể nói điều gì đó như:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
để xem các thay đổi được thực hiện cho một chức năng cụ thể trong tệp nguồn kể từ lần xác nhận cuối cùng hoặc lịch sử thay đổi hoàn chỉnh. Câu hỏi của tôi là hai lần:
- Có một cái gì đó tồn tại mà làm điều này?
- Một công cụ như vậy sẽ được thực tế? Nó sẽ phải thực hiện một số phân tích mã đơn giản cho mỗi lần sửa đổi để so sánh các phiên bản khác nhau của hàm; chi phí quá cao để nó có hiệu quả?