Вы демонстрируете способ проверки различий, но говорите, что вывод слишком велик, и вы не можете извлечь изменения сигнатуры метода.Если под этим вы имеете в виду, что вы спрашиваете о конкретной поддержке git для сообщения об изменении сигнатуры метода, то нет - такой поддержки не существует.Это связано с тем, что git ничего не знает о языках, которые вы могли или не могли использовать в файлах, находящихся под контролем исходного кода.Все это просто контент, который отличается или не отличается от другого контента.
Поскольку сигнатура метода может быть разбита на строки любым количеством способов, даже не гарантируется, что только потому, что сигнатура метода изменила свое имяпоявится в любом месте в diff.Что вам действительно нужно сделать, это выполнить своего рода «структурный анализ».То есть вам нужно
- проверить "старую" версию и передать ее анализатору java
- проверить "новую" версию и передать ееjava parser
- сравнивает результирующие деревья синтаксического анализа, ища методы, которые принадлежат одному и тому же объекту, но изменились
Даже это будет не очень легко, потому что методы можно переименовыватьи потому, что перегрузка метода может сделать неясным, какое изменение сигнатуры происходит с какой версией метода.
Оттуда у вас есть нетривиальная проблема кодирования, которая выходит за рамки SO, чтобы ответить.Если вы решите заняться этой проблемой и столкнетесь с конкретными вопросами программирования, конечно, вы можете опубликовать эти вопросы, и, возможно, кто-то сможет помочь.