SlideShare a Scribd company logo
第4回shinagawa.redmine勉強会

RedmineとGitとスクラム
                おかもとたかし
アジェンダ
 RedmineでGitを運用するコツ
 ALMiniumによるスクラムの運用
Gitの特徴
 分散型
 やり直せるマージ、コミット
 オフラインでもok
 Subversionを共有リポジトリとして利用可能
 リベースによるブランチの更新
 高速
 GitHub
やり直せるマージ・コミット
$ svn update

 コンフリクトが発生するとコードがぐちゃぐち
  ゃに
 もう一度update前に戻したいけど時すでに遅
  し
updateの前にはフォルダのバックアップを取る
運用orz
Gitなら
pull/mergeなどでぐちゃぐちゃになっても

$ git reset --hard HEAD

で元に戻せる!!pullの場合は、

$ git merge FETCH_HEAD

でマージをやり直すことができる
オフラインでもコミット可能
 出張先で
 ちょっとカフェで休憩しながら
 通勤電車の中で
 回線状態が悪い海外との開発
 トイレでもok(ex. 下痢気味のときなど)
Google Trends
 Subversion/Mercurialに比べるとGitが頭一
  つユーザが多い
 ドキュメント・情報も多い
RedmineのGit対応
 リポジトリビューの対応
 コミットキーワードとチケットの対応付け
 ブランチのグラフィカルな表示
 Redmineとの認証の統合
    (2.1~。2.0まではpatchが必要#4905)
HTTPの利用によるGitアクセス
 HTTP(S)が通れば何処でもアクセス可能
 Redmineのアカウントと統合可能
 プロジェクトの設定でリポジトリの
  Read/Writeの設定が可能
    ロール     Read      Write(push)
    管理者     ○         ○
    開発者     ○         ○             ロールを作成する場合:
                                     Read: リポジトリの閲覧
    報告者     ○         ×              Write: コミットの閲覧
    匿名ユーザ   ○(公開プロ    ×
            ジェクトのみ)
RedmineのGitの設定
SetEnv GIT_PROJECT_ROOT /var/opt/alminium/git
SetEnv GIT_HTTP_EXPORT_ALL                                   httpd.conf
ScriptAlias /git/ /usr/lib/git-core/git-http-backend/

<LocationMatch /git/>
  PerlAccessHandler Apache::Authn::Redmine::access_handler
  PerlAuthenHandler Apache::Authn::Redmine::authen_handler
  AuthType Basic
  AuthName Git

# for Redmine Authentication
   RedmineDSN "DBI:mysql:database=alminium;host=localhost"
   RedmineDbUser "alminium"
   RedmineDbPass "alminium"
   RedmineGitSmartHttp yes

  Require valid-user
</LocationMatch>
リポジトリの名前規約
 プロジェクト名: hoge
 リポジトリのフォルダ名:
     hoge
     hoge.server
     hoge.client
     hoge.doc
REDMINE+GIT運用のコツ
共有リポジトリの作成
$ git init –-bare --share
■HTTPを利用する場合
$ git update-server-info
$ mv .git/hooks/post-update.sample
       .git/hooks/post-update
※ロックを行うためのファイル管理
$ chown apache.apache –R .
 (RHEL系OSの倍)
段階的に導入する
   ちょっと使い難いSubversion
       ブランチを活用せずに導入
       設定やプッシュ、プル、マージに慣れる
       中央リポジトリはSubversionでもok
   ちょっと便利なSubversion
       git resetで間違えたコミットを編集(プッシュ前)
       フェッチ・リベース・マージで綺麗な履歴
   ブランチを活用
       単なるブランチとして活用(マージのみ利用)
       リベースを利用した高度な運用
Redmine+Git運用のコツ

リベースで綺麗な履歴を作る
リベースなしの場合


        pull/fetch      push




          pull/fetch


                         push
pullからpushの間に他のコミットが挟まれるとブランチのマージになる
リベースなしの場合




pullからpushの間に他のコミットが挟まれるとブランチのマージになる
pull/pushを繰り返すと…




           マージだらけに…
リベースで綺麗な履歴


         push
リベースで綺麗な履歴
このままpushすると




                         push


pullからpushの間に他のコミットが挟まれるとブランチのマージになる
リベースする
リベースした
         $ git fetch
         $ git rebase FETCH_HEAD master




             fetch/rebase
プッシュ




       push
履歴が直線!!




   綺麗なコミット履歴ができる
Redmine+Git運用のコツ

その他雑多なコツ
git push –fはやってはダメ
git push –f は使用すべからず
  コミットの消失やリポジトリの不整合が発生



            ×4


                     ここから先は
                     パラレルワールド
削除したコミットを共有リポジトリ
へ反映させない(push –fの禁止)
サーバ上のリポジトリディレクトリで実行
$ git config –-bool receive.denyNonFastforwards
  true

(git init時に—shareオプションをつけても設定される)
ブランチ・タグの削除禁止
サーバ上のリポジトリディレクトリで実行
$ git config –-bool receive.denyDeletes true
Web画面からのリポジトリ作成
SCM Creatorプラグイン
                   リポジトリ名
ブランチとチケットの関連付け
       Redmine Git Branch Hook
        #xxxが含まれるブランチを関連するチケットに関連付け
                  ブランチを
                                 #23
                  チケットに対応付け
                                 生徒会は投
                                 稿に返信で
                                 きる




             1‘    2’       3’           story/#23
                                            指定したブランチへ
                                            のマージで自動的に
                                            クローズ
    1        2     3    4        5       master
Redmine Git Branch Hook
 ブランチにコミットすると、自動的にコミットメ
  ッセージをチケットに追加
 Gitクライアントへのインストールは不要
  (Redmine側で関連付けを実行)
 指定したブランチ(ex.master, releaseなど)
  へマージすると自動的にチケットをクローズ
 (GitHubのプルリクエスト相当の機能を実現)
トラブルシューティング
   GitのURLにアクセスして何も表示されなく
    てもうろたえない
    http://redminehost/git/xxxx


   リポジトリビューワにアクセスしてエラーが
    出たら何かコミットしろ
pull/fetchでおかしくなったら
リセットでマージ前に戻して再マージ
$ git reset –-hard
$ git merge FETCH_HEAD
ALMINIUMの紹介
ALMiniumの紹介
 ALM+Redmineの合金=ALMinium
 Git/Backlogsなど含め簡単インストール
 Selenium/Titaniumに続くツールという意味
 RedmineをGitHubライクに
    (Redcarpet Wiki Formatter/ブランチのマージ操
      作によるチケットクローズによる疑似プルリク
      エスト)
   Backlogsプラグインによるスクラムのサポ
    ート
Webサイトと画面
ALMiniumの概要
                                                    Gerrit
                                                   Jenkins

                                            Redmine+Plugins
                                          Marcurial           Git
          HTTPS(HTTP)
                                                Subversion

                                            Ruby/Passenger
                                           MySQL           Apache

                                            CentOS/Ubuntu
Page 38
                    アイコンは次のサイトで配布されているものですhttp://www.visualpharm.com/
ALMiniumのGit関連機能
 Apacheへの設定の自動化とRedmineとのユーザ
  連携
 HTTPSによる便利でセキュアなアクセス
 Webからのリポジトリの作成
 Redmine Git Branch Hookによるブランチとチケ
  ットの対応付け
 コミットの上書き禁止、タグ・ブランチの削除禁
  止など、安全に使える設定
Gitポケットリファレンス
 環境設定・Git入門
 Windowsユーザーにも
  優しく
 コマンドリファレンスで
  中級者もためになる
 フック・ALMinium/Gitolite
  でリポジトリ管理者も納得
 GitHub
チーとシート
         見本
スクラム対応
無駄をなくす



使わない機能
ほとんど使わない
機能         よく使う
           たまに使う
スクラムのおさらい
要件(バックログ)整理              スプリント計画
   悩みを投稿できる                   悩みを投稿できる

   投稿に返信できる                   投稿に返信できる

  Webサイトを公開する                 Webサイトを公開する

   非公開にできる

   メールで通知する

                                            タスク
レビュー・                   スプリント実施
振り返り
                悩みを投稿できる

                投稿に返信できる

                Webサイトを公開する
Redmine Backlogsでの対応
要件(バックログ)整理              スプリント計画
   悩みを投稿できる                   悩みを投稿できる

   投稿に返信できる                   投稿に返信できる

  Webサイトを公開する                 Webサイトを公開する

   非公開にできる

   メールで通知する

                                            タスク
レビュー・                   スプリント実施
振り返り
                悩みを投稿できる

                投稿に返信できる

                Webサイトを公開する
バックログの管理




チケットの粒度
  チケット=バックログをストーリーポイントで管理
タスクボード
バーンダウンチャート
集計とか
アジャイルのレベル
   レベル4. 自己組織化
   レベル3. フィードバック
       スプリント毎のバックログの見直し
       ベロシティの計測
       CI
   レベル2. 計測
       ブランチ・マージ

                            ALMinium
       チケット化
       タスクボード・バーンダウンチャート
       スプリント計画ミーティング
   レベル1. 共有
       ソースコード
       ストーリー/タスク
       問題・課題
       朝会・振り返り
ご清聴ありがとうございました!!

More Related Content

PDF
ドメイン駆動設計 失敗したことと成功したこと
PDF
JenkinsとSeleniumの活用事例
PDF
RedmineのFAQとアンチパターン集
PDF
リッチなドメインモデル 名前探し
PDF
ドメイン駆動設計という仕事の流儀
PDF
View customize plugin for Redmineの紹介 (2019年版)
PDF
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
PDF
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020
ドメイン駆動設計 失敗したことと成功したこと
JenkinsとSeleniumの活用事例
RedmineのFAQとアンチパターン集
リッチなドメインモデル 名前探し
ドメイン駆動設計という仕事の流儀
View customize plugin for Redmineの紹介 (2019年版)
自動化を支えるCI/CDツールの私の選択 ~何をするためにCI/CDツールを選ぶか~
Redmineの画面をあなた好みにカスタマイズ - View customize pluginの紹介 - Redmine Japan 2020

What's hot (20)

PDF
オブジェクト指向エクササイズのススメ
PPTX
bashでWebブラウザ(Selenium WebDriver)を動かした話
PPTX
マイクロサービスにおける 非同期アーキテクチャ
PDF
Redmineを快適に使うためのおすすめ初期設定
PDF
挫折しないRedmine (2022)
PDF
Railsで作るBFFの功罪
PPTX
Redmineカスタムフィールド表示改善
PDF
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PDF
PHP 5.5ネーティブキャッシュの話
PDF
ドメイン駆動設計 本格入門
PDF
Form認証で学ぶSpring Security入門
PDF
とあるメーカーのRedmine活用事例
PDF
ドメイン駆動設計のためのオブジェクト指向入門
PDF
ドメイン駆動設計 基本を理解する
PDF
View customize pluginを使いこなす
PDF
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
PDF
View Customize Pluginで出来ること
PDF
ある工場のRedmine +(Plus)
PDF
実践に向けたドメイン駆動設計のエッセンス
PDF
3週連続DDDその1 ドメイン駆動設計の基本を理解する
オブジェクト指向エクササイズのススメ
bashでWebブラウザ(Selenium WebDriver)を動かした話
マイクロサービスにおける 非同期アーキテクチャ
Redmineを快適に使うためのおすすめ初期設定
挫折しないRedmine (2022)
Railsで作るBFFの功罪
Redmineカスタムフィールド表示改善
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
PHP 5.5ネーティブキャッシュの話
ドメイン駆動設計 本格入門
Form認証で学ぶSpring Security入門
とあるメーカーのRedmine活用事例
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計 基本を理解する
View customize pluginを使いこなす
Redmine 5.0 + RedMica 2.1 新機能評価ガイド
View Customize Pluginで出来ること
ある工場のRedmine +(Plus)
実践に向けたドメイン駆動設計のエッセンス
3週連続DDDその1 ドメイン駆動設計の基本を理解する
Ad

Viewers also liked (20)

PDF
Scrum with Redmine Backlogs
PDF
はじめる! Redmine (2015)
PDF
Redmineによるwebサポート窓口の実装と運用
PDF
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
PDF
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
PDF
Redmineによるメール対応管理の運用事例
PDF
Redmine + MySQL 応答性能の調査結果と対策
PDF
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
PDF
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
PDF
Redmineプラグイン導入・開発入門
PDF
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
PDF
ある工場のRedmine
PDF
Redmineでチケット駆動開発を実践する~チケットに分割して統治せよ
PDF
はじめる! Redmine
PDF
挫折しないRedmine
PDF
Redmineを使ってみよう
PDF
20120711 WUM Redmineの使い道_公開版
PDF
Redmineのバージョンアップに追従していくための一工夫
PDF
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
PDF
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Scrum with Redmine Backlogs
はじめる! Redmine (2015)
Redmineによるwebサポート窓口の実装と運用
情報システム部門のタスク管理~ITS応答性能の調査結果と対策 編~ #RxTstudy #6 #Redmine
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
Redmineによるメール対応管理の運用事例
Redmine + MySQL 応答性能の調査結果と対策
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
Redmineプラグイン導入・開発入門
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
ある工場のRedmine
Redmineでチケット駆動開発を実践する~チケットに分割して統治せよ
はじめる! Redmine
挫折しないRedmine
Redmineを使ってみよう
20120711 WUM Redmineの使い道_公開版
Redmineのバージョンアップに追従していくための一工夫
第4回品川Redmine勉強会資料「チケット駆動開発のフレームワーク~現場の経験知からパターン言語へ(ベータ版)」
Redmineチューニングの実際と限界(旧資料) - Redmine performance tuning(old), See Below.
Ad

Similar to RedmineとGitとスクラム (20)

PDF
Al mininum 47redmine-2nd
PPTX
Redmine導入しました(公開)
PDF
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
PDF
Gitのよく使うコマンド
PPTX
Git勉強会
PDF
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
PDF
Redmine導入しました(公開版)
PDF
CIBC workshop by imagire
PDF
はじめてのプロジェクト管理ツール-Redmine超入門-
PDF
ある工場と Redmine 2020
PPTX
Git & GitHub & kintone でウルトラハッピー!
KEY
Redmine::ChanでIRCからプロジェクト管理
KEY
P4p20120408
KEY
Git (実践入門編)
PDF
【第13回RxTStudy勉強会】Redmine BacklogsプラグインでScrum開発! ~Redmineでアジャイルに開発しよう
PDF
Redmine 過去・2.1・未来
PDF
Redmine 300 310_new_feature
PDF
Enterprise Redmine
PDF
SVNのすすめ&Redmineでプロジェクト管理
PDF
楽しいゲーム開発管理
Al mininum 47redmine-2nd
Redmine導入しました(公開)
20091010名古屋Ruby会議01 プログラマとプログラマでない人のための課題管理ツール『Redmine』
Gitのよく使うコマンド
Git勉強会
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Redmine導入しました(公開版)
CIBC workshop by imagire
はじめてのプロジェクト管理ツール-Redmine超入門-
ある工場と Redmine 2020
Git & GitHub & kintone でウルトラハッピー!
Redmine::ChanでIRCからプロジェクト管理
P4p20120408
Git (実践入門編)
【第13回RxTStudy勉強会】Redmine BacklogsプラグインでScrum開発! ~Redmineでアジャイルに開発しよう
Redmine 過去・2.1・未来
Redmine 300 310_new_feature
Enterprise Redmine
SVNのすすめ&Redmineでプロジェクト管理
楽しいゲーム開発管理

More from Takashi Okamoto (11)

PDF
PhoneGapでWebアプリをスマホアプリ化
PDF
jQuery Mobile で作る" 実用" スマフォアプリ
PDF
jQuery Mobileの基礎
PDF
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
PDF
Jqm20120804 publish
PDF
Opsta github-hundson 20120201
PDF
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
PDF
Shibuya.trac、DVCSの導入方法のご紹介
PDF
Shibuya.tracの紹介
PDF
Kanonによるはじめてのアジャイル開発
PDF
分散バージョン管理システムって何なん 20101218
PhoneGapでWebアプリをスマホアプリ化
jQuery Mobile で作る" 実用" スマフォアプリ
jQuery Mobileの基礎
jQuery MobileとPhoneGapでスマートフォンアプリ楽々クッキング
Jqm20120804 publish
Opsta github-hundson 20120201
Kanonってなぁ~に?~楽々Kanonで華麗にお仕事しよう~
Shibuya.trac、DVCSの導入方法のご紹介
Shibuya.tracの紹介
Kanonによるはじめてのアジャイル開発
分散バージョン管理システムって何なん 20101218

RedmineとGitとスクラム