Przeszukuję wyniki Google za darmo (open source) Java diff libaries, i wydaje się całkiem sporo takich (niektórzy z nich pracują nawet z ogólnymi obiektami, a nie tylko z Stringami).Czy istnieje biblioteka Diff dla języka Java obsługująca funkcję Adnotate/Blame?
przed jestem kopanie przez tony wynikach wyszukiwania, a nie znalezienie tego, czego szukam, Spytam raz pierwszy tutaj:
Czy któryś z tych bibliotek diff obsługuje funkcję jak annotate cvs czy svn winy. Chcę
- przekazać aktualną
String[]
do funkcji - kontynuować przechodząc starsze wersje
String[]
do funkcji, dopóki nie użyłem się wszyscy, czy biblioteka mówi mi, że nie oryginalna linia została Pozostało niezarejestrowane (ostatnia rzecz nie jest tak naprawdę koniecznością, ale bardzo przydatna, ponieważ pobieranie starszych wersjiString[]
jest kosztowne, dlatego chciałbym zakończyć tak wcześnie, jak to możliwe) - zadzwoń do funkcji, która daje mi
ìnt[]
, która mówi mi każda linia aktualnej wersji, w której wersji została ostatnio zmieniona lub czy w ogóle się nie zmieniła (np t zmienił się w pierwszej wersji).
Posiadanie wsparcia dla obiektów, które nie są String
s jest ładne, ale nie musi. A jeśli API nie jest dokładnie takie, myślę, że mógłbym z tym żyć.
Jeśli go nie ma, czy ktoś może zaproponować bibliotekę z rozszerzalną biblioteką różnicową, w której można łatwo dodać tę cechę, najlepiej taką, która chciałaby otrzymać tę funkcję jako wkład (i nie wymaga wypełniania dokumentów, zanim zaakceptuje wkłady, takie jak projekt GNU)? Chciałbym się zgłosić (przynajmniej spróbować) dodać go tam.
mam wszystkie starsze wersje pliku, który jest nie problem (jak napisano w pytaniu). Po prostu nie w VCS, który wspiera Blame. Zaangażowanie ich w tymczasowy SVN tylko po to, by obwiniać jeden plik, nie jest tym, za czym jestem ... Algorytm nie jest tu najtrudniejszy (tak, dotyczy to różnicowania wszystkich wersji i śledzenia, gdzie numery linii będą się pojawiać i kiedy "znikają"), po prostu trzeba to wdrożyć :) – mihi
Gotcha. Innym pomysłem byłoby przyjrzeć się kodowi źródłowemu wiki wiki. Ponieważ zazwyczaj muszą być implementowane, kod może tam być. http://c2.com/cgi/wiki?JavaWikiEngines wyświetla niektóre. – vasquez