Estoy explorando los resultados de Google de libre (código abierto) Java diff libaries, y parecen bastantes de ellos (algunos de ellos incluso trabajan con Objetos genéricos y no solo con Strings).¿Hay una biblioteca Diff para Java que admita Anotar/Culpar?
Antes de que yo estoy cavando a través de toneladas de resultados de búsqueda y no encontrar lo que estoy buscando, voy a pedir aquí primero:
¿Algo de esas bibliotecas diff apoyar una función como anotar CVS o SVN culpa. Quiero
- pasar la corriente
String[]
a una función - siguen pasando las versiones anteriores del
String[]
a una función, hasta que he agotado todos ellos, o en la biblioteca mí que hay una línea original le dice dejado unánimemente (lo último no es realmente obligatorio, pero muy útil ya que recuperar versiones anteriores deString[]
es costoso, por lo que me gustaría detenerme lo antes posible) - llamar a una función que me da un
ìnt[]
que me indica cada línea de la versión actual, en qué versión fue modificada por última vez o si no se modificó (es decir, las t cambiado en la primera versión).
Tener soporte para objetos que no son String
s es bueno, pero no es obligatorio. Y si la API no es exactamente así, creo que podría vivir con eso.
Si no hay nadie, ¿alguien puede sugerir una biblioteca extensible diff donde esa característica se puede agregar fácilmente, preferiblemente una que desea recibir esa característica como contribución (y no requiere toneladas de papeleo antes de aceptar contribuciones, como el proyecto GNU)? Sería voluntario (al menos intentaré) agregarlo allí, entonces.
tengo todas las versiones anteriores del archivo, es decir no el problema (como está escrito en la pregunta). Simplemente no en un VCS que admite Blame. Y comprometerlos en un SVN temporal solo para culpar a un archivo no es lo que estoy buscando ... Y el algoritmo no es la parte difícil aquí (sí implica diferir todas las versiones y rastrear dónde van los números de línea y cuándo "desaparecerán"), es solo que necesita implementarlo :) – mihi
Gotcha. Otra idea sería mirar el código fuente de wikis basados en Java. Dado que tienen que implementar generalmente, el código podría estar allí. http://c2.com/cgi/wiki?JavaWikiEngines enumera algunos. – vasquez