バージョン管理システムは通常、この機能を「誰かを非難する」と呼びます。各行について、誰がいつ変更したかを示します。
更新:何千もの編集がある記事の解決策を探しています(つまり、バージョン履歴をナビゲートし、それぞれをチェックすることは実用的ではありません)。
記事のView History
リンクをクリックすると、記事に加えられた変更のリスト、日付、誰が表示されます。変更の説明の短い要約も表示されます。 Compare selected version
ボタンをクリックして、テキストを比較できます。
残念ながら、特定の行または文または段落を誰が変更したかを直接確認できるBlame機能については知りません。
編集: Greg Hewillのサイト をチェックしてください。彼は(明らかに)そのような非難機能に取り組んでいます。
http://wikipedia.ramselehof.de/wikiblame.php?lang=en を使用すると、Wikipediaでリビジョンを検索できます。
これを行うには、すべてのウィキペディアの記事の右上隅にある"View History"
をクリックします。そこには、記事の改訂版のリストがあります。各ユーザーが具体的にコミットしたい場合は、各リビジョンの横にある"cur"
をクリックすると、ウィキペディアが変更内容を強調表示します。
それを行う1つの方法は、記事の履歴をエクスポートし、git blame
などのローカルツールを使用してリビジョンを処理することです。これはスクリプトを使用して実行できます。
記事の履歴をエクスポートするには、 Special:Export
を使用 、具体的には https://en.wikipedia.org/w/index.php?title=Special:Export&history=1&action=submit&pages=Blinkenlights
。
非難を生成するには、最初に一時的なgitリポジトリにリビジョンを追加します(Python 3を参照):
import tempfile
import subprocess
with tempfile.TemporaryDirectory() as repo:
os.chdir(repo.name)
subprocess.check_call(['git', 'init'])
次に、エクスポートされた履歴XMLをダウンロードし、lxml.etree
などで解析し、リビジョン(xpath //revision
)をループします。リビジョンごとに、テキストをファイルに書き込み(たとえばarticle.wiki
)、作成者を読み、実行します
subprocess.check_call(['git', 'commit', '-a', '-m', 'blah', '--author=' + str(author)])
すべてのリビジョンがリポジトリに追加されたら、git blame article.wiki
を実行して各行の作成者を確認します。
注:Special:Export
はエクスポートされるリビジョンの数を制限する可能性があるため、長い履歴を持つページでは、XMLを複数回フェッチする必要がある場合があります。