Los sistemas de control de versiones suelen llamar a esta característica "culpar a alguien". Para cada línea, muestra quién lo modificó y cuándo.
Actualización: Estoy buscando una solución para artículos con miles de ediciones también (es decir, navegar por el historial de versiones y verificar cada una no es práctico).
Si hace clic en el enlace View History
para un artículo, puede ver la lista de cambios realizados en el artículo, en qué fecha y por quién. También se muestra un breve resumen de la descripción del cambio. Luego puede hacer clic en el botón Compare selected version
para comparar el texto.
Desafortunadamente, no conozco una función Culpa que le permita ver directamente quién realizó los cambios en una línea, oración o párrafo en particular.
EDITAR: es posible que desee consultar sitio de Greg Hewill , él (aparentemente) está trabajando en una función de culpa.
Use http://wikipedia.ramselehof.de/wikiblame.php?lang=en que permite buscar revisiones en Wikipedia.
Puede hacerlo haciendo clic en "View History"
ubicado en la esquina superior derecha de cada artículo de wikipedia. Allí encontrará una lista de las revisiones de un artículo. Si desea que cada usuario haya confirmado específicamente, puede hacer clic en "cur"
junto a cada revisión y wikipedia resaltará lo que se modificó.
Una forma de hacerlo es exportar el historial del artículo y luego procesar las revisiones utilizando una herramienta local como _git blame
_. Esto podría hacerse usando un script.
Para exportar el historial del artículo, se _Special:Export
_ , específicamente: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
.
Para generar la culpa, primero agregue las revisiones a un repositorio git temporal (que se muestra en Python 3):
_import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
_
Luego descargue el XML del historial exportado, analícelo con algo como _lxml.etree
_, y repita las revisiones (xpath _//revision
_). Para cada revisión, escriba el texto en un archivo (diga _article.wiki
_), lea el autor y ejecute
_subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
_
Después de agregar todas las revisiones al repositorio, ejecute _git blame article.wiki
_ para ver el autor de cada línea.
Nota: _Special:Export
_ puede restringir el número de revisiones exportadas, por lo que en páginas con un historial largo puede que tenga que recuperar el XML varias veces.