Wiki – Versiones de files

Estoy construyendo un website tipo wiki, y me pregunto cómo implementar el control de versiones del file para crear el historial de artículos. Me gustaría poder, cuando alguien edite un file, poder mostrar qué partes fueron editadas y, si es necesario, volver a un file anterior.

EDIT: Gracias por tus respuestas. Empecé a revisarlos y luego me di count de que mi publicación no era muy precisa. Así que puedo agregar que estoy usando Java como un lenguaje de desarrollo (Groovy a través de Grails para ser precisos). Además, la aplicación que estoy creando no es solo una Wiki. Hace muchas otras cosas, pero algunas partes deben ser editables por varios usuarios. Así que estoy buscando el mejor candidato para ese trabajo en particular.

Me limitaré a ver cómo se implementan ikiwiki o gitit (Perl y Haskell, respectivamente), ya que ambos pueden usar Git como back-end.

En cuanto a ikiwiki (lo estoy usando para mi wiki de intranet en el trabajo) guarda las fonts de página (formatting wiki) como files simples, y después de cada save (o git push desde el exterior) "comstack" el sitio a un set de páginas estáticas Utiliza el enfoque make style para comstackr el sitio, sin embargo, solo las páginas modificadas se reconstruyen.

Hablando de Git, lo que necesitas ya está implementado en las forms de git blame y git checkout .

Aunque podría usar esos commands para hacer el trabajo, probablemente sería mejor con libgit2 que es básicamente toda la funcionalidad que necesita, pero como una biblioteca en lugar de ejecutables.

Es posible que desee echar un vistazo a Gollum , el motor wiki de Github basado en git.