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

More Related Content

What's hot

今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話iPride Co., Ltd.
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise EnvironmentTomoya Kawanishi
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwellsinsoku listy
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門AimingStudy
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例Uchio Kondo
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習石橋 啓太
 
Quartzでcronを範囲検索したい
Quartzでcronを範囲検索したいQuartzでcronを範囲検索したい
Quartzでcronを範囲検索したいchibochibo
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemdUchio Kondo
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Tetsurou Yano
 
ペパボのサービスとRuby
ペパボのサービスとRubyペパボのサービスとRuby
ペパボのサービスとRubyUchio Kondo
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725Masafumi Noguchi
 

What's hot (17)

Real legacy
Real legacyReal legacy
Real legacy
 
今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話今更だけど 「git rebase」の 使い方を覚えた話
今更だけど 「git rebase」の 使い方を覚えた話
 
Ruby Enterprise Environment
Ruby Enterprise EnvironmentRuby Enterprise Environment
Ruby Enterprise Environment
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
Mongo db18 upgrade
Mongo db18 upgradeMongo db18 upgrade
Mongo db18 upgrade
 
SVN経験者のためのGIT入門
SVN経験者のためのGIT入門SVN経験者のためのGIT入門
SVN経験者のためのGIT入門
 
mikutter入門
mikutter入門mikutter入門
mikutter入門
 
ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例ペパボ福岡支社におけるRubyの活用事例
ペパボ福岡支社におけるRubyの活用事例
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
 
Quartzでcronを範囲検索したい
Quartzでcronを範囲検索したいQuartzでcronを範囲検索したい
Quartzでcronを範囲検索したい
 
貧者のための「cron」
貧者のための「cron」貧者のための「cron」
貧者のための「cron」
 
人間たちとsystemd
人間たちとsystemd人間たちとsystemd
人間たちとsystemd
 
Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由Rancher と GitLab を使う3つの理由
Rancher と GitLab を使う3つの理由
 
ペパボのサービスとRuby
ペパボのサービスとRubyペパボのサービスとRuby
ペパボのサービスとRuby
 
Gitの勉強 紹介編-
Gitの勉強 紹介編-Gitの勉強 紹介編-
Gitの勉強 紹介編-
 
MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725MasterCloud Docker Hands-on 20170725
MasterCloud Docker Hands-on 20170725
 

Similar to Ruby svn to git

Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyYouhei SASAKI
 
Ruby on RedHat Enterprise Linux
Ruby on RedHat Enterprise LinuxRuby on RedHat Enterprise Linux
Ruby on RedHat Enterprise LinuxTomoya Kawanishi
 
git-svnつかってみる?
git-svnつかってみる?git-svnつかってみる?
git-svnつかってみる?riskrisk
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Koichi Shimozono
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)fd0
 
Redmine 300 310_new_feature
Redmine 300 310_new_featureRedmine 300 310_new_feature
Redmine 300 310_new_featureJun Naitoh
 
migrate to magazine.rubyist.net
migrate to magazine.rubyist.netmigrate to magazine.rubyist.net
migrate to magazine.rubyist.netKazuhiro Nishiyama
 
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Kazuhiro Nishiyama
 
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話Kazuhiro Nishiyama
 
Metahub for github
Metahub for githubMetahub for github
Metahub for githubSuguru Oho
 

Similar to Ruby svn to git (16)

Ruby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇RubyRuby in Wheezy @ 関西闇Ruby
Ruby in Wheezy @ 関西闇Ruby
 
Ruby on RedHat Enterprise Linux
Ruby on RedHat Enterprise LinuxRuby on RedHat Enterprise Linux
Ruby on RedHat Enterprise Linux
 
git-svnつかってみる?
git-svnつかってみる?git-svnつかってみる?
git-svnつかってみる?
 
Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発Ruby on Rails を用いたWEBアプリケーションの開発
Ruby on Rails を用いたWEBアプリケーションの開発
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集Ruby 3.0.0 コネタ集
Ruby 3.0.0 コネタ集
 
Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)Ruby on cygwin (2019/8月号)
Ruby on cygwin (2019/8月号)
 
Redmine 300 310_new_feature
Redmine 300 310_new_featureRedmine 300 310_new_feature
Redmine 300 310_new_feature
 
migrate to magazine.rubyist.net
migrate to magazine.rubyist.netmigrate to magazine.rubyist.net
migrate to magazine.rubyist.net
 
Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告Ruby リファレンスマニュアル改善計画 2022 進捗報告
Ruby リファレンスマニュアル改善計画 2022 進捗報告
 
小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話小規模個人アプリをRails 7.xにバージョンアップした話
小規模個人アプリをRails 7.xにバージョンアップした話
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
Ruby In Wheezy
Ruby In WheezyRuby In Wheezy
Ruby In Wheezy
 
mrubyのすすめ
mrubyのすすめmrubyのすすめ
mrubyのすすめ
 
Ruby on Windows
Ruby on WindowsRuby on Windows
Ruby on Windows
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 

More from Kazuhiro Nishiyama

Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27Kazuhiro Nishiyama
 
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたlilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたKazuhiro Nishiyama
 
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdfKazuhiro Nishiyama
 
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfKazuhiro Nishiyama
 
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみたqemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみたKazuhiro Nishiyama
 
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるKazuhiro Nishiyama
 
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能Kazuhiro Nishiyama
 
チャットボットのススメ
チャットボットのススメチャットボットのススメ
チャットボットのススメKazuhiro Nishiyama
 
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたKazuhiro Nishiyama
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンドKazuhiro Nishiyama
 
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話Kazuhiro Nishiyama
 
boot2docker の format-me の話
boot2docker の format-me の話boot2docker の format-me の話
boot2docker の format-me の話Kazuhiro Nishiyama
 
lilo.linux.or.jp の話 (2017年12月)
lilo.linux.or.jp の話 (2017年12月)lilo.linux.or.jp の話 (2017年12月)
lilo.linux.or.jp の話 (2017年12月)Kazuhiro Nishiyama
 

More from Kazuhiro Nishiyama (20)

Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
Ubuntuのriscv64版をqemuで動かした at LILO&東海道らぐオフラインミーティング 2024-04-27
 
lilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げたlilo.linux.or.jp を buster から bullseye に上げた
lilo.linux.or.jp を buster から bullseye に上げた
 
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdffukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
fukuoka03-rubima-reboot-rubyist-magazine-reboot.pdf
 
rubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdfrubykaigi2022-rurema-history-and-future.pdf
rubykaigi2022-rurema-history-and-future.pdf
 
qemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみたqemuのriscv64にDebianを入れてみた
qemuのriscv64にDebianを入れてみた
 
systemd 再入門
systemd 再入門systemd 再入門
systemd 再入門
 
livedoor天気API終了対応
livedoor天気API終了対応livedoor天気API終了対応
livedoor天気API終了対応
 
Wireguard 実践入門
Wireguard 実践入門Wireguard 実践入門
Wireguard 実践入門
 
workflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考えるworkflow,job,step の使い分けの基準を考える
workflow,job,step の使い分けの基準を考える
 
あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能あまり知られていないRubyの便利機能
あまり知られていないRubyの便利機能
 
チャットボットのススメ
チャットボットのススメチャットボットのススメ
チャットボットのススメ
 
Dokku の紹介
Dokku の紹介Dokku の紹介
Dokku の紹介
 
Action Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみたAction Cableで簡易チャットを作ってみた
Action Cableで簡易チャットを作ってみた
 
Ruby 2.6 Update
Ruby 2.6 UpdateRuby 2.6 Update
Ruby 2.6 Update
 
Language update 2018 - ruby
Language update 2018 - rubyLanguage update 2018 - ruby
Language update 2018 - ruby
 
systemdでよく使うサブコマンド
systemdでよく使うサブコマンドsystemdでよく使うサブコマンド
systemdでよく使うサブコマンド
 
Certificate Transparency
Certificate TransparencyCertificate Transparency
Certificate Transparency
 
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
ブログを Octopress 2 + GitHub Pages から Jekyll 3 + AMP + Netlify に移行した話
 
boot2docker の format-me の話
boot2docker の format-me の話boot2docker の format-me の話
boot2docker の format-me の話
 
lilo.linux.or.jp の話 (2017年12月)
lilo.linux.or.jp の話 (2017年12月)lilo.linux.or.jp の話 (2017年12月)
lilo.linux.or.jp の話 (2017年12月)
 

Ruby svn to git