あるコードを追加したコミットを見たいときに、改行コードの変更が全体を覆っているとかで、blame一回で確認できない場合があります。
そういったときは、
1.Blameでコミットを見て、
2.historyを開いて、1のコミットの1つ前の「<>」(マウスオーバーするとBrowse the repository at this point in the history)と出るボタンを押して、
3.さらにBlameのボタンを押して、コミットを見て…
とやりますが、面倒なのでChromeのユーザースクリプトを作ってみました。
1.manifest.jsonを作成
{ "manifest_version":2, "version":"1.0", "name": "BlameExtension", "content_scripts": [ { "js": ["myscript.js"], "matches": ["https://github.com/*/blame/*"] } ] }
2.myscript.jsを作成
for(target of document.getElementsByClassName("blame-commit-title")){ var arr=target.childNodes[0].href.split("/"); var sha=arr[arr.length-1]; var a = document.createElement("A"); var url = location.href.replace(/blame\/[A-Za-z0-9]+/,"blame/"+sha+"^"); a.setAttribute('href', url); var btn = document.createElement("BUTTON"); var t = document.createTextNode("B"); a.appendChild(btn); btn.appendChild(t); target.appendChild(a); }
DOMからコミットのSHAを抜き出して、今開いているページのURL(location.href)のSHAまたはmaster(/を含むブランチ名にはまだ非対応)を書き換えてリンクを作ってます。
3.manifest.jsonとmyscript.jsをフォルダに入れて、フォルダをchrome://extensions/へドラッグ&ドロップすると動きます。