卜部昌平のあまりreblogしないtumblr RSS

Archive

Oct
2nd
Sat
permalink

Rubyには公式のものだけでも30本のブランチに29,385個のチェンジセットがある(執筆時点)。ブランチの1,000倍程度のチェンジセットがあるということは、実際にはブランチとチェンジセットの関係は偏りがあるから、ともかく長いブランチは超長いということがいえる。ちなみに一番長いのはもちろんtrunkで、この枝の長さは20,992リビジョンだ。次点がruby_1_8で、3,328リビジョンある(執筆時点)。

さてこのくらいの規模になってくると、もはや全容を把握するというのは困難である。特にどのブランチがどのチェンジセットから派生したかという情報は、もちろん個別には取り出すことは可能だが、俯瞰するのが困難になってくる。実際、今回ちょっとしたことでgit rebaseしようとしたらrebase先を間違えてしまい、ものすごく太古の昔からrebaseされてしまいげんなりするという体験をした(俺が本当にやりたいのはrebase —ontoだった)。せめて枝分かれの概況が俯瞰できる何かがあればいいんだが、githubのnetwork graphとかどうもその用途には向いてない。

というわけでないものはしょうがないので作った。

FAQ

Q. これはどういうグラフですか

A. Githubのruby/rubyをforkしているすべてのプロジェクトを引っ張ってきてオブジェクト同士の連結グラフを生成して、そこから可縮辺を可能な限り縮約したものです。

Q. どう読めばいいのですか?

A. 概ね、上から下に向かって新しくなります。枝分かれしているところはCVSまたはSubversionまたはGitでブランチしたところです。合流しているところはgit mergeが発生しているところです。初期には枝分かれしかないが、あとの方に行くに連れてmerge commitが増えているのが観測できます。

Q. 字が書いてあるのとないのの違いは?

A. 書いてあるのはGitレベルのref名です。そのようなものがない場合は無名です。

Q. 俺のrefがない

A. たとえばgithubでforkしただけの人とかはそれだけでは枝分かれを生じないので、ここには現れません。意味のあるコミットをした人と、たまたまそこから他の人がブランチを切った場合のみ名前が出ています。

Q. 中央左付近のへんな丸が繋がってるのは何

A. mrknmethodmissingのしわざ

Q. ソースコード寄越せ

A. Githubに負荷がかかるのであまりおすすめできない。が、ともかく貼っておく。

http://gist.github.com/606432

  1. dnpp reblogged this from shyouhei
  2. ainame954 reblogged this from mitukiii
  3. mitukiii reblogged this from shyouhei
  4. meteruu reblogged this from shyouhei
  5. fuhaku reblogged this from maybowjing
  6. maybowjing reblogged this from shyouhei
  7. mugyu reblogged this from shyouhei
  8. mrkn20 reblogged this from shyouhei and added:
    あーそうか、svn 側のリビジョン上がる度にマージコミットし続けたら、その都度 id が生成されるのか。なるほど。
  9. katsyoshi reblogged this from kakutani
  10. kakutani reblogged this from shyouhei
  11. shyouhei reblogged this from mrkn20 and added:
    いや申し訳ない。グラフ縮約アルゴリズムがミスってました。バグをとってみたらmerge commitしてたのはmethodmissingだったよ。git rev-list —headerで確認したから間違いない。お騒がせしました...
  12. yatmsu reblogged this from shyouhei
  13. hibariya reblogged this from shyouhei
  14. gunjisatoshi reblogged this from shyouhei
  15. lugecy reblogged this from tyru-tech
  16. yujiorama reblogged this from shyouhei
  17. atm09td reblogged this from shyouhei
  18. naoto reblogged this from tyru-tech
  19. fimbulwinter19 reblogged this from shyouhei
  20. tsuka reblogged this from kakutani
  21. tyru-tech reblogged this from shyouhei
  22. shyouhei posted this