Я копаю результаты Google для бесплатных (с открытым исходным кодом) Java-библиотек различий, и, похоже, их довольно много (некоторые из них даже работают со стандартными объектами, а не только со строками).
Прежде чем копаться в тоннах результатов поиска и не найти то, что я ищу, я сначала задам вопрос:
Поддерживает ли какая-либо из этих библиотек сравнения такую функцию, как cvs annotate или svn blame.Я хочу
- передать текущий
String[]
функции - и продолжить передачу старых версий
String[]
в функцию, пока я не израсходую все из них,или библиотека сообщает мне, что ни одна оригинальная строка не была оставлена без аннотации (последнее, что на самом деле не является обязательным, но очень полезным, так как получение более старых версий String[]
стоит дорого, поэтому я хотел бы остановиться как можно раньше) - вызывает функцию, которая дает мне
ìnt[]
, которая сообщает мне для каждой строки текущей версии, в какой версии она была изменена последней или не была ли она вообще изменена (т.е. последняя изменена в самой первой версии).
Поддерживать объекты, которые не String
s, приятно, но не обязательно.И если API не совсем такой, думаю, я бы с этим смирился.
Если его нет, кто-нибудь может предложить расширяемую библиотеку diff, в которую можно легко добавить эту функцию, предпочтительно такую, которая бы хотелаполучить эту функцию в качестве вклада (и не требует заполнения тонны документов до того, как они примут вклады, как проект GNU)?Тогда я бы добровольно (хотя бы попытался) добавить его туда.