2009-05-28 12 views
6

Al pasar la línea aquí, lo sé, pero ... ¿Cómo muestra StackOverflow los cambios de revisión en el formato de tipo diff que usan?Cómo se muestra el historial de revisiones como Revisiones

No me importa SO tan solo, es solo una manera conveniente de describir mi requerimiento. Tengo un historial de auditoría de cambios en un campo de texto. Me gustaría mostrar los cambios de la misma manera que SO muestra los cambios en el historial de revisiones. Recuerdo un podcast de SO que Jeff discutió, pero no puede encontrarlo en las transcripciones y no tiene idea de qué podcast. IIRC, no está basado en .net, ¿tal vez Python?

Esto es para el consumo del usuario final por lo que todo lo que se parece a un diff similar a unix está fuera. Tentando para mostrar dos bloques y texto, viejo y nuevo y dejar que lo resuelvan, pero el historial de revisión SO es mucho más agradable.

Thx.

+0

Por lo que vale, Wikipedia también tiene una interfaz de usuario de historial de revisiones bastante buena. Podría intentar buscar en el código fuente de MediaWiki. –

Respuesta

1

Como realmente no especificaste un idioma: he hecho esto usando el paquete PHP PEAR Text_Diff.

+0

Parece tener alguna promesa. Necesitamos descubrir cómo publicar esto desde w/en una aplicación asp.net. Tal vez un servidor php en la parte de atrás que puedo acceder desde el código del lado del servidor. –

+0

@WaldenL puede hacer un servicio de jabón en PHP. La última vez que lo hice tuve que crear manualmente un WSDL, pero finalmente Somone hizo un objeto soap que puede heredar y todas sus funciones públicas quedan expuestas en un WSDL automáticamente. –

2

El Python difflib biblioteca estándar proporciona este tipo de capacidad:

Este módulo proporciona clases y funciones para la comparación de secuencias. Se puede usar, por ejemplo, para comparar archivos, y puede producir información de diferencia en varios formatos, incluidos HTML y contexto y diffs unificados. Para comparar directorios y archivos, vea también, el módulo filecmp.

+0

difflib parece hacer la línea a la vez diferir solamente. Estoy buscando la difusión en línea que SO usa. Tal vez pueda usarlo sin embargo. –

+0

difflib puede comparar dos secuencias cualquiera; si eso son secuencias de líneas, personajes, palabras, oraciones, depende de usted. He usado difflib para comparar texto a nivel de palabra y funciona bien para eso. –

-1

Se utilizaron Beyond Compare. Por lo que puedo decir, no es un programa .NET nativo, pero puede usarlo como una herramienta de línea de comandos.

+0

No estoy seguro de que sea correcto. Creo que ese es el uso en el lado del desarrollo (revisiones de fuente diferente, scripts db, etc.) y no lo que usan para mostrar las revisiones en línea. –

Cuestiones relacionadas