Иногда было бы неплохо иметь возможность сказать что-то вроде:
(git|svn|hg|etc) diff Foo.c:main
(git|svn|hg|etc) log log Foo.c:main
чтобы увидеть изменения, внесенные в конкретную функцию в исходном файле с момента последней фиксации, или полную историю изменений. У меня вопрос двоякий:
- Существует ли что-то, что делает это?
- Будет ли такой инструмент практичным? При каждой ревизии нужно было бы выполнить простой анализ кода, чтобы сравнить разные версии функции; будет ли накладные расходы слишком большими, чтобы они были эффективными?