Text
Page: 1
Ruby svn to git Kazuhiro NISHIYAMA 第86回 Ruby関⻄ 勉強会 2019/05/11 株式会社Ruby開発 Powered by Rabbit 2.1.8
Page: 2
⾃己紹介 ⻄⼭ 和広 Ruby のコミッター twitter, github など: @znz 株式会社Ruby開発 www.ruby-dev.jp 1/14
Page: 3
svn から git へ 参考: 令和時代のRubyコア開発 - k0kubun’s blog https://k0kubun.hatenablog.com/ entry/ruby-core-2019 Ruby のコア開発が Subversion から Git に移⾏ 2/14
Page: 4
歴史 バージョン管理システム以前 news (nntp) とかメーリングリスト (ML) と か CVS : ruby-cvs ML の名前の由来 Subversion : 安定版のメンテナンスは まだこちら Git : 開発版はこちら (安定版も 2.7 から) 3/14
Page: 5
歴史 (CVS → Subversion) 連携しているものもほぼない時代 すんなり移⾏ ruby-cvs ML の名前はそのまま svn → git の時は特に話題になることもなく 同様にそのままに 4/14
Page: 6
歴史 (Subversion → ?) svk を⼿元で使っている⼈もいた Mercurial などには移⾏せず Git が主流に svn も git-svn 経由で使う⼈が増えた 5/14
Page: 7
なぜ移⾏? バージョン管理システムの主流が Git git-svn を使っている⼈が多かったが ⾊々と面倒だった GitHub で貢献者が出なかった (Co-authored-by も git-svn が挟まる とダメだった) 6/14
Page: 8
GitHub ではなく cgit プロプライエタリなものは使わないポリ シーの⼈ (Eric Wong) がいた 独⾃ hook の都合でいきなり GitHub 移 ⾏は⼤変そうだった 7/14
Page: 9
Git化に必要だった作業達 コミットフックの Git 対応 Ruby リポジトリ内の tool/* スクリプト 公式の issue tracker の Redmine RubyCI や ci.rvm.jp などの CI や bot cgit の⽤意、運⽤、アナウンス 8/14
Page: 10
GitHub で運⽤している他 プロジェクトとの違い GitHub 上でのマージボタンは使わない 同期が⼀⽅向のため 開発版ブランチが trunk (master では ない) これも変更すると影響があるので変えるな らまた別途 9/14
Page: 11
制限事項 git push -f は禁⽌ trunk 以外へのブランチへの push は禁 ⽌ (安定版ブランチはまだ svn からのミラ ー) マージコミットはしない 移⾏直後に1個⼊れてみたらいくつか懸念点 があったので当面は使わない 10/14
Page: 12
よかったこと git-svn の複雑さに悩まなくてよくなっ た git.ruby-lang.org が日本からだと github.com より速い https://github.com/ruby/ruby/ graphs/contributors に貢献者がのる ようになった 11/14
Page: 13
GitHub はミラー GitHub は Subversion 時代と変わらず ミラー cgit とずれて push -f されることもある ⼿元のがおかしくなったら「git fetch - f」とか「git checkout -B trunk origin/trunk」とか clone し直しとか 12/14
Page: 14
GitHub pull request も可能 GitHub 上でのマージはしないが、コミッタ ーがマージして push できる 議論が必要なものは bugs.ruby- lang.org のチケットで 13/14
Page: 15
まとめ Ruby 本体のレポジトリは Subversion から Git に 安定版は次の 2.7 から 連携ツールもほぼ移⾏完了 GitHub はミラーだが pull request も 可能 Powered by Rabbit 2.1.8 14/14