Submit Search
Upload
マジカルsvnとキュアgit
•
112 likes
•
17,792 views
Takafumi ONAKA
Follow
2012-03-22 techhills
Read less
Read more
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 51
Download now
Download to read offline
Recommended
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
Iocコンテナについて
Iocコンテナについて
Akio Terayama
CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」
鈴木 セシル
マイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャ
ota42y
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
Recommended
OSSを利用したプロジェクト管理
OSSを利用したプロジェクト管理
Tadashi Miyazato
Iocコンテナについて
Iocコンテナについて
Akio Terayama
CleanArchitecture 第4部 「コンポーネントの原則」
CleanArchitecture 第4部 「コンポーネントの原則」
鈴木 セシル
マイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャ
ota42y
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
FastAPIのテンプレートプロジェクトがいい感じだった話
FastAPIのテンプレートプロジェクトがいい感じだった話
NipponAlgorithm
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
de:code 2017
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
Yuta Matsumura
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
Google Cloud で実践する SRE
Google Cloud で実践する SRE
Google Cloud Platform - Japan
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
MagicOnion入門
MagicOnion入門
torisoup
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
More Related Content
What's hot
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
Kiro Harada
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
Koichiro Matsuoka
オブジェクト指向できていますか?
オブジェクト指向できていますか?
Moriharu Ohzu
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
de:code 2017
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
Yuta Matsumura
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
Unity Technologies Japan K.K.
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Hajime Yanagawa
Google Cloud で実践する SRE
Google Cloud で実践する SRE
Google Cloud Platform - Japan
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
GREE VR Studio Lab
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
Yoshifumi Kawai
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
MagicOnion入門
MagicOnion入門
torisoup
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
増田 亨
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
What's hot
(20)
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
DDDをScrumで廻す あるいは ScrumをDDDで廻す
DDDをScrumで廻す あるいは ScrumをDDDで廻す
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
オブジェクト指向できていますか?
オブジェクト指向できていますか?
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
[AC05] マイクロサービスは分割がキモ!基幹システムのためのドメイン駆動設計
分かったうえではじめるCI/CD
分かったうえではじめるCI/CD
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
Google Cloud で実践する SRE
Google Cloud で実践する SRE
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
オープンソースで構築するWebメタバース ~Mozilla Hubsで学ぶUX開発から運用コスト最小化まで #CEDEC2022
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Unified JVM Logging
Unified JVM Logging
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
「黒騎士と白の魔王」gRPCによるHTTP/2 - API, Streamingの実践
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
MagicOnion入門
MagicOnion入門
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Similar to マジカルsvnとキュアgit
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
ymmt
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
Shota Umeda
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
terurou
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Developers Summit
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
kimulla
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Shin Takeuchi
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
グロースエクスパートナーズ株式会社/Growth xPartners Incorporated.
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Takashi Sogabe
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話
Shinobu Okano
Hyper → Highspeed → Development
Hyper → Highspeed → Development
aktsk
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
Tadahiro Ishisaka
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Manabu Shimobe
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Kotaro Nakayama
Building Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
Yoji Shidara
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Masaki Muranaka
マルチデバイス時代の高速化
マルチデバイス時代の高速化
Shin Takeuchi
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
Toru Takahashi
Similar to マジカルsvnとキュアgit
(20)
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
Gitと出会って人生変わった テックヒルズ2013-03-22
Gitと出会って人生変わった テックヒルズ2013-03-22
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Multibranch Pipeline with Docker 入門編
Multibranch Pipeline with Docker 入門編
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
次世代エンタープライズの開発環境をライブで読み解く
次世代エンタープライズの開発環境をライブで読み解く
Scrum alliance regional gathering tokyo 2013 pub
Scrum alliance regional gathering tokyo 2013 pub
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
Devsumi2013 Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
コマンドなしでぼくはAndroid開発できない話
コマンドなしでぼくはAndroid開発できない話
Hyper → Highspeed → Development
Hyper → Highspeed → Development
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Deep Learning Implementations: pylearn2 and torch7 (JNNS 2015)
Building Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
マルチデバイス時代の高速化
マルチデバイス時代の高速化
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
EmbulkとDigdagとデータ分析基盤と
More from Takafumi ONAKA
不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持
Takafumi ONAKA
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
Takafumi ONAKA
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
Takafumi ONAKA
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
Takafumi ONAKA
pt-query-digest は Perl!!
pt-query-digest は Perl!!
Takafumi ONAKA
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
Takafumi ONAKA
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちは
Takafumi ONAKA
Perl使いの国のRubyist
Perl使いの国のRubyist
Takafumi ONAKA
ApplicationTemplateのススメ
ApplicationTemplateのススメ
Takafumi ONAKA
RSpecしぐさ
RSpecしぐさ
Takafumi ONAKA
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
Takafumi ONAKA
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
Takafumi ONAKA
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
Takafumi ONAKA
Application Bootstrap
Application Bootstrap
Takafumi ONAKA
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料
Takafumi ONAKA
すこやかRails
すこやかRails
Takafumi ONAKA
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
Takafumi ONAKA
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作った
Takafumi ONAKA
Webアプリケーションは難しい
Webアプリケーションは難しい
Takafumi ONAKA
More from Takafumi ONAKA
(20)
不正のトライアングルとコードベースの治安維持
不正のトライアングルとコードベースの治安維持
技術記事を書く&楽しむチームの作り方
技術記事を書く&楽しむチームの作り方
グルーミングしながら進めるプロダクト開発
グルーミングしながら進めるプロダクト開発
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Hatena::Letの式年遷宮
Hatena::Letの式年遷宮
pt-query-digest は Perl!!
pt-query-digest は Perl!!
アプリケーションを作るときに考える25のこと
アプリケーションを作るときに考える25のこと
cpanfileがRubyでパースできることに気づいた俺たちは
cpanfileがRubyでパースできることに気づいた俺たちは
Perl使いの国のRubyist
Perl使いの国のRubyist
ApplicationTemplateのススメ
ApplicationTemplateのススメ
RSpecしぐさ
RSpecしぐさ
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
クローズドソースから始めるオープンソース
クローズドソースから始めるオープンソース
短期間で新技術を学ぶ技術
短期間で新技術を学ぶ技術
Application Bootstrap
Application Bootstrap
ドリコム×ピクシブ 社会人交換留学説明資料
ドリコム×ピクシブ 社会人交換留学説明資料
すこやかRails
すこやかRails
Github Enterprise じゃなくてもいいじゃん
Github Enterprise じゃなくてもいいじゃん
ターミナルで画像確認するヤツ作った
ターミナルで画像確認するヤツ作った
Webアプリケーションは難しい
Webアプリケーションは難しい
マジカルsvnとキュアgit
1.
マジカルsvn と キュアgit
2013-03-22 #techhills 大仲 能史 a.k.a. @onk
2.
宣 伝 Platinum Sponsor
of Rubykaigi2013
3.
自己紹介 • 大仲 能史 •
@onk • 普段の仕事 – アプリケーションエンジニア – ソーシャルゲーム開発部 – 前線でアプリ開発をしています copyright© DRECOM Co., Ltd All Rights 3 Reserved.
4.
今日のアジェンダ •
マジカルsvnとは • gitに移行して感じているメリット • 柔軟に移行するための戦略 • 移行時の準備チェックリスト
5.
マジカルsvnとは • 「マジカル」直訳で「不思議な」 • 現実には存在しない不思議なsvnの使い方
6.
我々の取ってい たブランチ戦略 Our subversion
branches 6
7.
trunk staging release
3 main branches 7
8.
trunk staging release
Commit to trunk 8
9.
trunk staging release
Cherry pick & test on staging 9
10.
trunk staging release
Release 10
11.
trunk staging release
Commit 11
12.
trunk staging release
Cherry-pick 12
13.
trunk staging release
Release 13
14.
マ ジ カ ル
14
15.
マジカルsvnは なぜ発生するか
15
16.
の前に
16
17.
理想の開発 フローとは
17
18.
世界中の開発者の中でpull request文化が主流になりつ つあるので、普段の開発にも
取り入れたい 18
19.
理想の開発フローとsvnとgit • チケット駆動開発をしたい –
OSSで成功しているモデルだし、作業管理がし やすくなる • svnは各所でTiDDを妨げてくる – ブランチを切るコストが高い – mergeが頭悪い • gitにはTiDDを実行する周辺環境が揃って いる – githubとpull request、travis-ci等
20.
svnではできないのか • svnは重い • 1.7で緩和したけどまだまだ重い •
本当に重いです。やりたい開発フローに 合わせられない重さ – そしてマジカルsvnが生まれる • 「trac-svnのリポジトリブラウザ便利だ わー」と言っている人は世界を知ってく ださい
21.
svnではできないのか • ツールが文化を規定する –
速くなる、楽になるだけで世界が変わる • svnでは到達しづらい目標点に軽くたどり 着くことができる • 「知の高速道路」「巨人の肩」 • 乗らない手はない
22.
今日話すこと • 話すこと –
みんなでgit化する方法 • 話さないこと – 一人でgitを始める方法 – 例えばgit-svnで今すぐ中央svnリポジトリ<-> 自分はgitで開発、とするとか – git-svnは1年半ほど使い倒したので興味があ る方は直接聞きに来てください
23.
gitに移行して感 じているメリッ
ト 23
24.
gitに移行して感じているメリット • 十分に速いリポジトリブラウザ • TiDDをやりやすい •
メンバーの意識改革につながった
25.
十分に速いリポジトリブラウザ • github、bitbucket、gitlab、etc.. • tracやredmine+svnとは桁が違う閲覧性
26.
TiDDをやりやすい • ブランチを切るコストが低い • ブランチをマージするコストが低い •
diffを見ながら会話し、1クリックでマー ジできるpull requestという仕組み
27.
メンバーの意識改革につながった • ちゃんとコードを見てもらえる安心感 • ちょっとした思いつきをcommitする障壁
が下がる • みんなが知っていれば僕だけが悪いん じゃないという逃げ腰の人にとって、ペ アプロやコードレビューはものすごく幸 せな環境
28.
外に出ていくようになる • 「githubにアカウントを持っていなかっ
たけど作りました」 • github Organization Accountで運営して いたプロジェクトに気軽にpull request を送ってもらえる環境を作れた • OSSに貢献しやすくなる
29.
git移行時の フロントエンド選定ポイント •
web UI • ユーザ管理やリポジトリ管理等もwebから 行える • pull request相当の機能がある • 継続してメンテナンスできる • OSSに貢献する敷居を下げる
30.
柔軟に移行する ための戦略
30
31.
柔軟に移行するための戦略 • 新規アプリには勝手に始めてもらう –
やる気がある人を妨げない環境があればいい – 中央のgitリポジトリだけ用意すると開発が始 まる • 既存の数年運用してきたアプリをどう移 行するかが最大の肝だった – クロスコミットで解決
32.
移行期間を設ける
git topic topic master subversion trunk 32
33.
移行期間を設ける • クロスコミットするようにした –
git-svn-bridge • svnにcommit / gitにpushどちらでもいい – 「重要なので、svnで失礼します」 – リリースフローはsvnのまま変えない • まずgitに慣れてもらって、その間に cherry-pickが必要なリリースフローを直 す
34.
移行後の開発フロー • git-flow、github-flowは夢物語 • リリースし続けるアプリケーションでは
github-flowが理想 – リリースできないものをmasterに入れない • ブランチをdeployしてテストする環境整 備とか。。 • まだ試行錯誤中です。
35.
移行時の準備 チェックリスト
35
36.
「社内に1人は居るgit好 き」に任せると漏れがち になる部分を重点的に
36
37.
移行時の準備チェックリスト • 上を倒す • 横を倒す •
継続的に運用する手段の確保
38.
上を倒す • githubの説明、レビュー文化の説明 • 「正しい文化だから取り入れましょう」
– コードレビューが改善として上がる状況なら これは納得してもらえる • GHEを入れるほどは倒せなかった – 予算に組み込まれてないので数百万のイニ シャルコストはまずい – 継続的なコストはそこまで気にしていないの で勝手にgitlab化を進めた
39.
横を倒す • 横とは –
(svnを上手に使えていない)非エンジニア – svnで回ってるので移行する理由がない人
40.
横を倒す • メリットを提示する –
そもそも変更履歴という概念があまりなく、共有 サーバとして使っている – 画像の差分が見られるよ • 元気なプロジェクトで試して便利そう楽しそ うに見せる – pull requestでワイワイする – 全ユーザが全プロジェクトを見れるようにし、 回ってるプロジェクトを見せて使い方をイメージ してもらう
41.
横を倒す • 移行しない理由を潰す –
推奨クライアントの設定、ドキュメント整備 • windowsがネック。SourceTree出ましたね! • エンジニア向けにはtigやfugitive、magitの説明 – 全プロジェクト、勝手に同期しておく – 全社的に移行する姿勢を見せる • ドメインを会社のトップレベルにした – 使い始めてくれたプロジェクトのIRCを張って、 不満を言われた瞬間に直す
42.
横を倒す • 移行しない理由を潰す –
詰まった時にすぐ聞ける環境を作る – 各プロジェクトに2人以上gitのコミットオブ ジェクトを理解している人を配備 – 置き換えるための不安を潰し続ける • 今やってる~の作業、gitではこの手順書を見てく ださい • コンフリクトが起きたらコミットツリーを描いて 何故おきたのか、どうすればいいのかを説明する
43.
継続的に運用する • バックアップ • 冗長化
– gitoliteのミラーリング – mysqlのレプリケーション • gitlabのコミッタ数名 – vagrantを用意 – gitlabの更新手順を用意
44.
全てのプロジェクトを移行する • gitでの様々な手順書を用意する • 上手い使い方を発表してもらう •
キリ番を祝う – 【祝】issue 100 • 移行してないプロジェクトは仲間外れだ よね、カッコ悪いよねという空気の醸成 – 「開発者はうまく怒らせるとすごい生産性を 発揮する」
45.
gitである必要は
あったか 45
46.
結論を言うと 「ない」
46
47.
十分に速いソースコード リポジトリと、TiDDをや りやすい周辺環境が揃っ ていれば何でも良い
47
48.
svnには欠けていた gitには揃っている
48
49.
リポジトリをgitにするだけじゃダ
メなの? • ワークフローはツールが規定する – UIが使われ方を決める。UI大事。 • web UIが無かったら? – ほぼsvnと同じ使われ方をします – ゴールは「pull request文化の輸入」 – 個人で幸せになってていいのは小学生まで – チームの生産性最大化を考えよう
50.
ソフトウェアだけじゃな く、チームも、組織も、 すべてを設計せよ
50
51.
ご清聴 ありがとうございました
51
Download now