Rabbit Slide Show

git cococoとRailsアプリ開発

2018-03-31

Description

git cococoの説明とRailsアプリケーション開発で使われる場面を説明します.

Text

Page: 1

git cococoとRailsアプリ開発
西田雄也
2018-03-31 kunibiki.rb#7
Powered by Rabbit 2.2.1

Page: 2

自己紹介
西田雄也
Twitter,GitHub: @nishidayuya
趣味:
小さいものを書く
スノーボード
なんとかGo(昨年末にTL40)
1/16

Page: 3

git
cococoっ
てなに?

Page: 4

git cococoってなに?
実行したコマンドとともにコマンドによる変更をコミ
ットするコマンド
$ git cococo bundle update
1. コマンド実行前にコミット漏れがないか確認
2. コマンド実行
3. 変更点をコミット
もう一度同じことをするコミットメッセージとともに
3/16

Page: 5

git cococoってなに?
実行したコマンドとともにコマンドによる変更をコミ
ットするコマンド
$ git cococo bundle update
1. コマンド実行前にコミット漏れがないか確認
2. sedを実行
3. 「run: git cococo bundle update」といったコ
ミットメッセージで変更点をコミット
4/16

Page: 6

もう一度同じことをするための
コミットメッセージ
コマンド実行はいいとしてコミットメッセージを
書くときにコピー&ペーストするの面倒.
毎回「どんな風に書いてたっけ…」って思いな
がらgit logで調べて同じように書くの面倒.
↓
これを解決!
実行時に一回だけ書けば良い
コミットメッセージはコマンド任せ
5/16

Page: 7

動機
松江Ruby会議06のa_matsudaさんの話
「コード生成するコマンドを実行した場合は、そ
のままコミットするのが望ましい。」
読みたいのは人間が書いた部分
コマンドでコード生成した部分は実行したコマンドがわ
かればいい
6/16

Page: 8

デモ

Page: 9

デモ: Railsア
プリケーショ
ン開発でよく
ある使い方

Page: 10

構成
git cococoはBourneシェルのシェルスクリプト
当初はRubyで実装していた.
Windowsで動かしたくなった.
mruby-cliもあるけど…
Gitが動く環境にはBourneシェルあるいは互換のシェ
ルがある.
自動試験はRubyで書いている.
単体テストとインテグレーションテスト
test-unitが試験を書きやすい.
9/16

Page: 11

設計
思想

Page: 12

設計思想: インストールが簡単
1ファイルのシェルスクリプトで実装してある.
ダウンロードして実行パーミッションを与えるだ
け.
$ wget https://raw.githubusercontent.com/nishidayuya/git-cococo/master/exe/git-cococo
$ chmod a+x git-cococo
$ mv git-cococo move-to-PATH-env-directory/
11/16

Page: 13

設計思想: 動く環境はGit
Gitが動作する全ての環境で動く(はず).
はず… 全ての環境で試験できません!
次の環境でCIをまわしている.
Ubuntu
Windows
MacOSX
動かないUnixあるいはUnix互換OSがあれば
教えてください&プルリクエスト歓迎です.
12/16

Page: 14

設計思想: 余計なことはしない
当初はコミット漏れがあれば自動的にgit stash
することを考えていた.
↓
使ってみたところコマンド実行に失敗したときに
stashしたままになるが,自動的にやっちゃうと
stashしたものが消えたように見える.
焦っているときは特に困る.
↓
--autostashオプションで明示的に指示する形
とした.
13/16

Page: 15

設計思想: Gitと合わせる(1)
--autostashオプションについて
当初は--auto-stashというオプション名で考え
ていた.
↓
git rebaseに--autostashオプションがあること
に気がついて揃えた.
14/16

Page: 16

設計思想: Gitと合わせる(2)
git cococoという名前について
Gitにはgit rerereコマンドがある.
REuse REcorded REsolutionの略
↓
git cococo
COmmit COmpletely COmmand outputの略
意味が合っている.
短い.
15/16

Page: 17

ご静聴ありがとうございました
インストールは
https://github.com/nishidayuya/git-cococo
より
気に入ってくださったらスターとかいただけると
調子に乗ります 励みになります.
Powered by Rabbit 2.2.1
16/16

Other slides