$30 off During Our Annual Pro Sale. View Details »

git cococoとRailsアプリ開発

git cococoとRailsアプリ開発

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

Yuya.Nishida.

March 31, 2018
Tweet

More Decks by Yuya.Nishida.

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. git
    cococoっ
    てなに?

    View Slide

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

    View Slide

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

    View Slide

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

    これを解決!
    実行時に一回だけ書けば良い
    コミットメッセージはコマンド任せ
    5/16

    View Slide

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

    View Slide

  8. デモ

    View Slide

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

    View Slide

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

    View Slide

  11. 設計
    思想

    View Slide

  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

    View Slide

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

    View Slide

  14. 設計思想: 余計なことはしない
    当初はコミット漏れがあれば自動的にgit stash
    することを考えていた.

    使ってみたところコマンド実行に失敗したときに
    stashしたままになるが,自動的にやっちゃうと
    stashしたものが消えたように見える.
    焦っているときは特に困る.

    --autostashオプションで明示的に指示する形
    とした.
    13/16

    View Slide

  15. 設計思想: Gitと合わせる(1)
    --autostashオプションについて
    当初は--auto-stashというオプション名で考え
    ていた.

    git rebaseに--autostashオプションがあること
    に気がついて揃えた.
    14/16

    View Slide

  16. 設計思想: Gitと合わせる(2)
    git cococoという名前について
    Gitにはgit rerereコマンドがある.
    REuse REcorded REsolutionの略

    git cococo
    COmmit COmpletely COmmand outputの略
    意味が合っている.
    短い.
    15/16

    View Slide

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

    View Slide