Czasami miło byłoby móc powiedzieć coś takiego:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
aby zobaczyć zmiany dokonane w określonej funkcji w pliku źródłowym od czasu ostatniego zatwierdzenia lub pełną historię zmian. Moje pytanie jest dwojakie:
- Czy istnieje coś, co to robi?
- Czy takie narzędzie byłoby praktyczne? Będzie musiał wykonać kilka prostych analiz parsowania kodu przy każdej wersji, aby porównać różne wersje funkcji; czy koszty ogólne byłyby zbyt duże, aby były skuteczne?