Take the 2-minute tour ×
Web Applications Stack Exchange is a question and answer site for power users of web applications. It's 100% free, no registration required.

Version control systems typically call this feature "blaming someone". For each line, it shows you who modified it and when.

Update: I'm looking for a solution for articles with thousands of edits as well (i.e. navigating the version history and checking each one is not practical).

share|improve this question
    
Specific instructions for using WikiBlame (to find out who wrote a specific phrase) can be found here: webapps.stackexchange.com/questions/35906/… –  Anderson Green Nov 26 '12 at 19:42

4 Answers 4

up vote 4 down vote accepted

If you click the View History link for an article you can see the list of changes made to the article, on what date, and by whom. A short summary of the change description is also displayed. You can then click the Compare selected version button to compare text.

Unfortunately, I'm not aware of a Blame feature that lets you directly see who made the changes to a particular line or sentence or paragraph.

EDIT: You may want to check out Greg Hewill's site, he (apparently) is working on just such a blame feature.

share|improve this answer
    
This is simple for short articles. However, when you have an article with hundreds or thousands of edits, it becomes much harder. I'm looking for the opposite. You give a line and it tells you the user. –  Senseful Jun 30 '10 at 22:27
    
That link you posted is exactly the kind of thing I was looking for. –  Senseful Jun 30 '10 at 22:54
    
I'm glad you found what you needed :D –  LBushkin Jun 30 '10 at 23:37

Use http://wikipedia.ramselehof.de/wikiblame.php?lang=en which allows searching of revisions on Wikipedia.

share|improve this answer
    
I tried it, and it seems to be a stinker. –  delete Jun 30 '10 at 23:19
    
I tried it, and it worked just fine. Here are specific instructions for using it: webapps.stackexchange.com/a/35914/20087 –  Anderson Green Nov 26 '12 at 19:54

You can do this by clicking "View History" located in the upper right corner of every wikipedia article. There you will find a list of the revisions of an article. If you want to specifically was committed by each user, you can click "cur" next to each revision and wikipedia will highlight what was changed.

share|improve this answer
    
I updated the question which explains why this method is no good for articles with thousands of versions. –  Senseful Jun 30 '10 at 22:29
    
It appears that OpenBSDWiki's answer is correct then. Is that not what you are looking for? –  Oren Jun 30 '10 at 22:31

One way to do it is to export the article history, and then process the revisions using a local tool like git blame. This could be done using a script.

To export the article history, use Special:Export, specifically: https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights.

To generate the blame, first add the revisions to a temporary git repository (shown in Python 3):

import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
    os.chdir(repo.name)
    subprocess.check_call(['git', 'init'])

Then download the exported history XML, parse it with something like lxml.etree, and loop over the revisions (xpath //revision). For each revision, write the text to a file (say article.wiki), read the author, and run

subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])

After all revisions are added to the repo, run git blame article.wiki to see the author of each line.

Note: Special:Export might restrict the number of revisions exported, so in pages with long history you might have to fetch the XML multiple times.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.