ossで作成するチーム開発環境

124
OSS でででででででででででで 石石石石 @ishisaka opcdiary.net

Upload: tadahiro-ishisaka

Post on 24-May-2015

4.412 views

Category:

Documents


9 download

DESCRIPTION

Trac Lightning & Git

TRANSCRIPT

Page 1: Ossで作成するチーム開発環境

OSSで作成するチーム開発環境

石坂忠広@ishisaka

opcdiary.net

Page 2: Ossで作成するチーム開発環境

自己紹介• 静岡から来ました• IT勉強会のスタッフをしています– NT-Committee2会員 (関東 )–静岡 ITPro勉強会スタッフ–静岡 Developers勉強会スタッフ– JAZUG静岡支部長

• 仕事は SE• 詳しくは以下を参照ください– http://opcdiary.net/?page_id=2

Page 3: Ossで作成するチーム開発環境

Agenda

• チームでの開発に必要なもの• TracLightningの導入• Gitの導入

Page 4: Ossで作成するチーム開発環境

チーム開発で必要なものチームでの仕事

Page 5: Ossで作成するチーム開発環境

一人とチームの違い

• コミュニケーション–合意–常識の共有

• 共有–知識–スケジュール–コード–ハードウェア

Page 6: Ossで作成するチーム開発環境

コミュニケーション

• 会話–席が隣。同じ場所で仕事をする。–電話 (テレカン、ビデオ会議… )

• 電子メール• IRC, Messenger• Twitter–新幹線で席が隣なら話した方がいいんじゃね ?

Page 7: Ossで作成するチーム開発環境

知識の共有

ルール

製品仕様

アーキテクチャ

バグ

ナリッジ

Page 8: Ossで作成するチーム開発環境

スケジュールの共有

Rev. 1.0 Release

スケジュール

進捗の入力

計画の承認・進捗の承認計画の入力

お菓子買わなくっちゃ…

Page 9: Ossで作成するチーム開発環境

コードの共有

ソースコードリポジトリ

Pull, Commit, Pushレビュー

ふむ。ふむ。これは参考になる!

Pull, Commit, Push

参照して HTML化

ちゃんとバグは治ってるかな ?

コード

Page 10: Ossで作成するチーム開発環境

ハードウェアの共有

ソースコードリポジトリ 参照

ビルド

パッケージング

JOBの登録

JOBの確認

失敗…

納品

ビルドサーバー

Page 11: Ossで作成するチーム開発環境

その実現はチーム開発環境で!

Page 12: Ossで作成するチーム開発環境

チーム開発環境での実現

• ナリッジの共有– Wiki– Issue Tracking

• コードの共有– SCM(Software Configuration Management System)–ブラウザ経由でのコード表示

• 作業の共通化– CI(Continuous Integration Tool)

Page 13: Ossで作成するチーム開発環境

Trac LightningTrac Lightningで構築するチーム開発環境

Page 14: Ossで作成するチーム開発環境

チーム開発環境のソフトウェア• プロプライエタリ– Visual Studio Team Foundation Server(MS)– Star Team(マイクロフォーカス )– IBM Rational Team Concert(IBM, Rational)

• オープンソースソフトウェア– Trac(Python)– Redmine(Ruby)

参考:http://en.wikipedia.org/wiki/Comparison_of_issue-tracking_systems

Page 15: Ossで作成するチーム開発環境

有償製品と OSSとの比較

• 管理できるプロジェクトの規模–有償:小規模 (数名 )から大規模 (千人規模 )まで

– OSS:中小規模プロジェクト• 機能–有償:有償セミナーが必要なぐらい高機能– OSS:本買えば何とかなりますよ。後はWEBで

• 導入コスト–それお高いんでしょ?– OSSなら導入 0円

Page 16: Ossで作成するチーム開発環境

できるだけ手間をかけずに!

• ただでも手間はかけられない• ただでさえ皆さん忙しいです• Trac, Redmineはただでも手間がかかるんでしょう?

• Linuxとかよくわかりません! (>_<)• サーバー OSとかありませんけど?• MySQLとか SQL Serverとかっ

Page 17: Ossで作成するチーム開発環境

Trac Lightning

• TracLightningを使えば簡単にチーム開発環境を構築できます。

• Windowsでインストーラーを動かすだけ!

• Tracを中心としたチーム開発スイート– Trac(Issue Tracking , Wiki, スケジュール )– Subversion(SCM)– Marven(Builder)– Jenkins(CI)

Page 18: Ossで作成するチーム開発環境

Trac Lightningの動作環境• Windows– XP, Vista, 7, 2003R2, 2008, 2008R2– IISはインストールしない– Windows Firewallでは必要ポートを開ける– Pythonや Apatchは TracLightningのインストーラーが入れる。

• Excel• Java Runtime• Visual Studio

Page 19: Ossで作成するチーム開発環境

Trac

• オープンソースのプロジェクト管理ツール• スウェーデンの EdgewallSoftware社が開発している

• 主な基本機能–チケット管理– Wiki–リポジトリブラウザ

Page 20: Ossで作成するチーム開発環境

Trac

• 開発言語– Pythonで開発されている。

• データベース– SQLiteを使用している。–バックアップ等での煩雑さは無いが、大規模な仕様では不安

– Postgre, MySQLを使用することも可能• 標準のバックアップコマンドでは DBまで面倒を見ないので注意

Page 21: Ossで作成するチーム開発環境

Tracでできること

• Wiki– Wikiは複数のメンバーが同一ページを効率的に編集・構築するためのシステム。

– Wikiは HTMLの書式ではなく、簡易化されたWiki 記法にて記述する。

– TracのWikiはチケット等との連携、コードリポジトリとの連携、プログラミングコードの文法ハイライトの機能などを備えている。

–チーム開発のルールなどの共有情報の保存・共有に使用する。

Page 22: Ossで作成するチーム開発環境
Page 23: Ossで作成するチーム開発環境

Tracでできること• チケットシステム– TODOやバグを「チケット」として管理する– 1タスク 1チケット–チケットには概要(表題)、報告者、詳細、分類、

優先度、マイルストーン、コンポーネントといった属性がつけられている

–チケットにはファイル添付が可能• バグ発生時のスクリーンショットなど

–チケットは作業ワークフローと連動した状態を持っている。• 新規チケット登録→作業者割り当て→作業中→作業完了

Page 24: Ossで作成するチーム開発環境

Tracでできること

• 標準のチケットワークフロー

Page 25: Ossで作成するチーム開発環境

Tracでできること

• チケットシステム–属性を設定することで、チケットを細かく管理することができる• 属性の値をソートや検索の条件にできる• 担当者の割り付けやマイルストーンの割り付けによる進捗の管理• 属性は設定変更により任意に追加できる

– TracLightningではカレンダー、ガントチャート機能のために開始日、終了日属性が追加されている

Page 26: Ossで作成するチーム開発環境
Page 27: Ossで作成するチーム開発環境

Tracでできること

• リポジトリブラウザ– Tracに登録された単一のリポジト上のディレクトリやファイルを参照することができる

–特定リビジョンでの変更内容やリビジョンログ、リビジョン間の Diffなどを確認することができる

–ソースコードはシンタックスハイライトされるし、 Diff表示でも変更点が色づけされる

Page 28: Ossで作成するチーム開発環境
Page 29: Ossで作成するチーム開発環境

Tracでできること

• タイムライン–作業履歴• Tracに加えられた様々な変更

– チケットの追加– チケットの状態変化– Wikiの変更– マイルストーンの変更– リポジトリへのチェックイン

• 誰が何をしたかを時系列に記録

Page 30: Ossで作成するチーム開発環境
Page 31: Ossで作成するチーム開発環境

Tracでできること

• ロードマップ–プロジェクトスケジューリングのための基本機能

–「マイルストーン」を管理する–チケットとマイルストーンをひも付けすることで、作業のスケジューリングと進捗管理を行う

Page 32: Ossで作成するチーム開発環境
Page 33: Ossで作成するチーム開発環境

Tracでできること

• 権限管理– Tracやリポジトリに対して誰が、何をできるのかを管理することができる

–認証には Apatch ( HTTPサーバ)の HTTP認証を用いる

• システムの拡張–プラグインによるシステム拡張がおこなえる

Page 34: Ossで作成するチーム開発環境

TracLightningでの追加• TracLightningではあらかじめいくつかの改

良、 Pluginが追加されている。–日本語化–カレンダー・ガントチャート• チケットベースでの進捗の管理につかう• もちろんマイルストーンとの関係性も確保• これで Redmineには負けない

– Excelインポート• チケットの情報を Excelからインポート、エクスポートできる– Excel 厨な上司に最適

Page 35: Ossで作成するチーム開発環境

TracLightningでの追加

• TracLightningではあらかじめいくつかの改良、 Pluginが追加されている。–チケットの親子関係• これで Redmineに負けない

– GUIの管理画面– GUIでのワークフローカスタマイズ– Jenkins への対応–など

Page 36: Ossで作成するチーム開発環境
Page 37: Ossで作成するチーム開発環境

DEMO, TRAC

Page 38: Ossで作成するチーム開発環境

はまらないコツ• UTF-8– Apatchなどの設定ファイルはいわゆる UTF-

8N–メモ帳で INIファイル類を編集しない–メモ帳で UTF-8のテキストを編集すると BOMがついてしまう

• Windows Firewall– Trac, Subversion, Hudsonで使用するポートはしっかりあけておく

–空けるか聞いてくると思いますけど

Page 39: Ossで作成するチーム開発環境

はまらないコツ

• Web Deployment Agent Service– Microsoft Web Deploy 2.0 用のリモート エージェント サービス

– VS2010 SP1などでインストールされる–何気にこの人が Port 80をがっつり捕まえていたりするので、殺しておく

• SQL Server– httpエンドポイントは使っちゃだめ

Page 40: Ossで作成するチーム開発環境

運用を快適に

• バックアップ–バッチコマンドがある–改造して使い勝手がいいように

• 仮想化– 仮想化しておくと使い勝手いいかもしれません– 仮想マシンごとテンプレ化して用意しておく

Page 41: Ossで作成するチーム開発環境

SCM(Software Configuration Management System)/ VCS(Version Control System)

• TrackLightningでは Subversionが自動的にインストール、環境構築される

• Subversion– Tracは原則 Subversionのためのツール

• クライアントをどうするか?– Visual Studioから

• AnkhSVN

– Windowsの Explorerから• TartoiesSVN

– どちらもそれぞれメリットがあるので両方使う。

Page 42: Ossで作成するチーム開発環境

SCM/VCS

• SCM/VCS用プラグイン– Git(後述 )– Mercurial(Hg)– Bazzar– Team Foundation Server• TFSを Subversionとして使用する

Page 43: Ossで作成するチーム開発環境

ビルドツール

• Apatch Mavenが TrackLightningの標準– Javaの世界では標準的 (?)–プラグインによる拡張• 様々なパッケージング• サーバーへのデプロイ

–規範による構成の一般化• ですが、MSクラスタでは一般的ではないし、使わないだろうからこれ以上の説明なし

Page 44: Ossで作成するチーム開発環境

Continuous Integration Tool

• TracLightningでは Jenkinsが CIツールとしてインストールされる

• Jenkins• Javaで作られている CIツール• Plugin 拡張• MS Build plugin• NUnit plugin• MStest plugin • Visual Studioでの開発でも問題なし。

Page 45: Ossで作成するチーム開発環境

DEMO, JENKINS

Page 46: Ossで作成するチーム開発環境

Trac, Trac Lightningにかけているところ

• 品質 /進捗の統計化–データ収集に関する機能が標準でない• 原則的に品質に関する数値管理は Jenkinsとそのプラグイン任せ。• 工数 /進捗といったチケットの情報は Excelでとれる。

–この辺はMSの TFSとか Rational 諸製品のような高価な有償ツールにはかなわないところかも

Page 47: Ossで作成するチーム開発環境

GIT分散型バージョン管理システム

Page 48: Ossで作成するチーム開発環境

Computer A中央 SCM

Version Database

集中と分散

集中 SCM 分散 SCM

Version 1

Version 2

Version 3

file

Checkout

Computer B

file

Checkout

中央 SCMVersion Database

Version 1

Version 2

Version 3

Computer A

Version Database

Version 1

Version 2

Version 3

file

Computer B

Version Database

Version 1

Version 2

Version 3

file

CVS, SVN, TFS

Git,Hg,Bazzar

Page 49: Ossで作成するチーム開発環境

Git

• Linux Kernelの開発ために作られ、そこで実際に使用されている分散型の SCM

• 差分では無くスナップショット– コミットの都度ファイルレベルでのスナップショットが作られるイメージ

• ほとんどの作業がローカル– ほとんどの作業ではローカルの作業用ファイルとデータベースだけが必要で、サーバーを必要としない。• たとえばMS VSSでは常に中央のサーバーを要求する。

Page 50: Ossで作成するチーム開発環境

Windows と Git

• 必ずしも相性は良くありません• Gitの根本的な思想は Unix 文化–ツールの組み合わせで処理を実現する–コマンドライン

• UTF-8を前提としたデータベース構造– Windowsでのファイル名の扱い–コミットログのようなテキストデータの処理

• 良くも悪くもまだ歴史が浅い (Win 上 )

Page 51: Ossで作成するチーム開発環境

msysGitか Cygwinか

• MinGWで開発された Gitの実装• Windows ネイティブなバイナリ• Git+MinGWの Unix発祥のツール群で構成• 多バイトのファイル名に対応していない

msysGit

• Windows 上に擬似的な Linux環境を構築する• Cygwin 向けツールは Cygwin用のバイナリ• Gitはそのツールの一つCygwin

Page 52: Ossで作成するチーム開発環境

msysGitのインストール

• 通常のWindowsインストーラーなので特に心配はいらない

• 後はWebで!– Visual StudioでGitを使用できるようになるまで

–パスは通せ–インストール先は変更しよう• Vista以降 Program Filesの下は面倒すぎる

Page 53: Ossで作成するチーム開発環境

クライアントツール

• コンテキストメニューからの Bash 呼び出し• Gitk 相当の GUIツールmsysGit

• 安心の Tortoiseシリーズ、通称亀 Git• Gitというより TortoiseSVNに近い使用感• Explorer 統合TortoiseGit

• Gitでの操作を GUI化し、より使いやすく• Explorer 統合• VS 統合GitExtensions

Page 54: Ossで作成するチーム開発環境

Gitと Trac(Trac Lightning)との統合

公開・共有用リポジトリの

作成

Trac への Git Pluginの追加 Trac.iniの編集 Httpdの

再起動

Page 55: Ossで作成するチーム開発環境

公開・共有リポジトリの構築

• Trac Lightningのコマンドプロンプトを起動

• 以下のコマンドを実行– > cd /d C:\TracLight\projects

> mkdir git> cd git> mkdir SampleProject> git init –bare> git update-server-info

• これで公開用の bareリポジトリを作成

Page 56: Ossで作成するチーム開発環境

Tracに Gitプラグインを追加する

• Trac Lightningのコマンドプロンプトを起動• 以下のコマンドを実行– > easy_install http://trac-hacks.org/svn/gitplugin/0.12

• 0.12は現状の最新なので、これは最新のものに合わせる。

Page 57: Ossで作成するチーム開発環境

trac.iniの編集

• Tracのリポジトリブラウザで Gitのリポジトリを見られるように設定を変更して、gitプラグインを有効にする

• C:\TracLight\projects\trac\SampleProject\confをメモ帳では無いテキストエディタで開く

• Trac.iniを編集する

Page 58: Ossで作成するチーム開発環境

編集内容[trac]repository_type = gitrepository_dir = C:\TracLight\projects\git\SampleProjectrepository_sync_per_request = (default)

[git]git_bin = C:\Git\bin\gitgit_fs_encoding = utf8

[components]tracext.git.* = enabled

Page 59: Ossで作成するチーム開発環境

Httpdの再起動

• サービスマネージャで” TracLightning”サービスを再起動する。– Windwos Serviceとして運用している場合

Page 60: Ossで作成するチーム開発環境

Gitを HTTPで公開する

• なぜ HTTPなのか?– Gitのリモートへのリポジトリ公開は sshで行うのが一般的

– Windowsには標準で ssh環境が無い• sshサーバの構築には Cygwinが必要

–ユーザーが慣れていない–管理的にも httpの方が敷居が低い気がする– Trac Lightningをインストールすれば、既に

Apacheがある• Tracのユーザー管理が使用できる

Page 61: Ossで作成するチーム開発環境

Gitを HTTPで公開する

git リポジトリの設定変更

Apacheの設定変更

httpdの再起動

Page 62: Ossで作成するチーム開発環境

Gitリポジトリの設定変更

• 公開しようとしているリポジトリのディレクトリにある” config”ファイルを、エディタで開く

• 以下の内容を追記[http]receivepack = true

• この設定で、 http経由の pushを受け付ける設定となる

Page 63: Ossで作成するチーム開発環境

Apacheの設定変更

• HTTPでの公開はWevDAVでと CGIを使う方法がるが、 pushも可能なように CGIでの公開として設定

• 設定した内容は以下の内容– git-httpd-backendを CGIとして動作させ、それを /git/というエイリアスに割り当てる。

–認証にはダイジェスト認証を使い、その設定は Trac Lightningのものを使用する

Page 64: Ossで作成するチーム開発環境

Apacheの設定変更

• C:\TracLight\CollabNetSVN\httpd\confに以下の内容を追加

SetEnv GIT_PROJECT_ROOT "C:\TracLight\projects\git"SetEnv GIT_HTTP_EXPORT_ALL

ScriptAlias /git/ "C:\Git\libexec\git-core\git-http-backend.exe/"SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER<Location /git> Options +ExecCGI AuthType Digest AuthName trac AuthUserFile "C:\TracLight\projects\trac.htdigest" Require valid-user Allow from all</Location>

Page 65: Ossで作成するチーム開発環境

httpdの再起動

• サービスマネージャで” TracLightning”サービスを再起動する

Page 66: Ossで作成するチーム開発環境

DEMO GIT

Page 67: Ossで作成するチーム開発環境

No Code, No Life.Presented by Tadahiro Ishisakahttp://opcdiary.netCode licensed under the Apache License v2.0. Documentation licensed under CC BY 3.0.

Page 68: Ossで作成するチーム開発環境

参考資料

Page 69: Ossで作成するチーム開発環境

参照サイト (Trac Lightning)

• The Trac Project– http://trac.edgewall.org/

• Trac Lightning– http://sourceforge.jp/projects/traclight/wiki/Front

Page• Shibuya Trac– http://sourceforge.jp/projects/shibuya-trac/wiki/F

rontPage

Page 70: Ossで作成するチーム開発環境

参照サイト (Jenkins)

• Jenkins– http://jenkins-ci.org/

• 日本 Jenkins ユーザー会– http://build-shokunin.org/

• Hudson で MSBuild を動かす - かおるんダイアリー– http://d.hatena.ne.jp/kaorun55/20081218/12295

90139

Page 71: Ossで作成するチーム開発環境

参照サイト (Subversion)

• Apache Subversion– http://subversion.apache.org/

• Ankhsvn– http://ankhsvn.open.collab.net/

• TortoiseSVN– http://tortoisesvn.tigris.org/

Page 72: Ossで作成するチーム開発環境

参照サイト (Git)

• Git – Fast Version Control System– http://git-scm.com/

• msysGit– http://code.google.com/p/msysgit/

• TortoiseGit– http://code.google.com/p/tortoisegit/

• Git Extensions– http://code.google.com/p/gitextensions/

Page 73: Ossで作成するチーム開発環境

参照サイト (Git)

• Git Source Control Provider– Visual Studionのソースコントロールプロバイ

ダとして VSとmsysGitの仲立ちをする– VSから Git Extensionsや TortoiseGitの呼び出し– http://gitscc.codeplex.com/

• Pro Git( 日本語 ) Apressからでている書籍の日本語訳– http://progit.org/book/ja/

Page 74: Ossで作成するチーム開発環境

OPC Diary

• Visual Studioで Gitを使用できるようになるまで– http://opcdiary.net/?page_id=5677

• Trac Lightningと Gitを組み合わせる– http://opcdiary.net/?p=6111

• Full installer for unofficial Unicode Git for Windows 1.7.8というもの– http://opcdiary.net/?p=6142

Page 75: Ossで作成するチーム開発環境

Trac参照書籍

• 入門 Trac 第 2 版– 高山 恭介 ( 著 )–出版社 : 秀和システム (2009/08)– ISBN-10: 4798023507– ISBN-13: 978-4798023502–発売日: 2009/08

Page 76: Ossで作成するチーム開発環境

Trac参照書籍

• Trac入門 ――ソフトウェア開発・プロジェクト管理活用ガイド–菅野 裕 ( 著 ), 今田 忠博 ( 著 ), 近藤 正裕

( 著 ), 杉本 琢磨 ( 著 ) – 出版社 : 技術評論社 (2008/9/18)– 言語 日本語– ISBN-10: 4774136158– ISBN-13: 978-4774136158– 発売日: 2008/9/18

Page 77: Ossで作成するチーム開発環境

Subversion参照書籍

• 実用 Subversion 第 2 版 – C. Michael Pilato ( 著 ), Ben Collins-Sussman ( 著 ),

Brian W. Fitzpatrick ( 著 ), 宮本 久仁男 ( 監訳 ) ( 監修 ), 朝枝 雅子 ( 翻訳 ), 浜本 階生 ( 翻訳 )

–出版社 : オライリージャパン ; 第 2 版 (2009/7/27)

–言語 日本語– ISBN-10: 4873114144– ISBN-13: 978-4873114149–発売日: 2009/7/27

Page 78: Ossで作成するチーム開発環境

Git参照書籍

• Gitによるバージョン管理–出版社 : オーム社 (2011/10/25)–言語 日本語– ISBN-10: 4274068641– ISBN-13: 978-4274068645–発売日: 2011/10/25

Page 79: Ossで作成するチーム開発環境

Git参照書籍

• 実用 Git – Jon Loeliger ( 著 ), 吉藤 英明 ( 監訳 ) ( 翻訳 ), 本間 雅洋 ( 翻訳 ), 渡邉 健太郎 ( 翻訳 ), 浜本 階生 ( 翻訳 )

–出版社 : オライリージャパン (2010/2/19)–言語 日本語– ISBN-10: 4873114403– ISBN-13: 978-4873114408–発売日: 2010/2/19

Page 80: Ossで作成するチーム開発環境

Jenkins参照書籍

• Jenkins実践入門– 佐藤 聖規 ( 著 , 監修 ), 和田 貴久 ( 著 ), 河村

雅人 ( 著 ), 米沢 弘樹 ( 著 ), 山岸 啓 ( 著 ), 川口 耕介 ( 監修 )

– 出版社 : 技術評論社 (2011/11/11)– ISBN-10: 4774148911– ISBN-13: 978-4774148915– 発売日: 2011/11/11

Page 81: Ossで作成するチーム開発環境

Jenkins参照書籍

• Jenkins– John Ferguson Smart ( 著 ), Sky 株式会社 玉川 竜

司 ( 翻訳 ) –出版社 : オライリージャパン (2012/2/22)–言語 日本語– ISBN-10: 4873115345– ISBN-13: 978-4873115344–発売日: 2012/2/22

Page 82: Ossで作成するチーム開発環境

追加の参考資料

Page 83: Ossで作成するチーム開発環境

Linuxでの Trac, JenkinsKANONプロジェクト

Page 84: Ossで作成するチーム開発環境

Linuxでの Trac 運用

• KANON– Linux 上で実現する TracLightinig–ウォーターフォール開発、アジャイル開発

(SCRUM) 両方に対応– SCMの対応が豊か• はじめから SVN, Hg, Bazzar, Gitに対応

– Javaベースの GUIツール– http://kanon.ultimania.org– http://kanon.ultimania.org/trac/kanon

Page 85: Ossで作成するチーム開発環境

Linuxでの Trac 運用

• KANON–ダウンロード• http://kanon.ultimania.org/hg/KanonConductor/

–対応プラットフォーム• Ubuntu 10.10• RedHat Enterprise Linux 6.0 (Webサーバ構成 )• Debian GNU/Linux• CentOS 5

–インストール方法• http://kanon.ultimania.org/?p=1

Page 86: Ossで作成するチーム開発環境

WINDOWSでの GIT 設定

Page 87: Ossで作成するチーム開発環境

Git bashのための .inputrc 設定例

set kanji-code sjisset convert-meta offset meta-flag onset output-meta on

#うまくいかなければあきらめる

Page 88: Ossで作成するチーム開発環境

Git bashのための .profile 設定例

alias ls='ls --color=auto --show-control-chars'alias ll='ls -l'alias l='ls -CF'alias emacs='emacs -rv'

Page 89: Ossで作成するチーム開発環境

.gitconfigの設定例[merge]

tool = kdiff3[mergetool "kdiff3"]

path = c:/Program Files (x86)/KDiff3/kdiff3.exe[diff]

guitool = kdiff3[difftool "kdiff3"]

path = c:/Program Files (x86)/KDiff3/kdiff3.exe[core]

editor = \"C:/Program Files (x86)/GitExtensions/GitExtensions.exe\" fileeditor

autocrlf = true

Page 90: Ossで作成するチーム開発環境

なぜ今 Gitなのか?

• GitHubがホットでクールだから• 分散 SCMの快適さ–バザール的な開発に対応している–作業環境の変化→集中では構成を維持しにくい• ノマドスタイル• SOHO• 在宅勤務

–これはそのまま OSSの開発スタイルに近づいている

Page 91: Ossで作成するチーム開発環境

Unix的な流儀に慣れる

• Unix的な流儀に慣れる–これがWindowsだけを使ってきた人が Gitを使う上での一番の大きな壁かもしれません

– Gitに限らず多くの OSSやフリーソフトウェアは Unix 文化を背景にしています

–したがって、文化としての Unixを理解していくことが便利に使用していくための一番のこつだったりします

Page 92: Ossで作成するチーム開発環境

Jenkinsと Git

Page 93: Ossで作成するチーム開発環境

Jenkinsで Gitを使用する

• Git Pluginの導入– https://

wiki.jenkins-ci.org/display/JENKINS/Git+Plugin• Jenkinsの設定– Git.exe へのフルパスを記入

Page 94: Ossで作成するチーム開発環境

Jenkinsで Gitを使用する

• プロジェクトでの設定–リポジトリの URLを指定• 認証が必要な場合は認証データも URLに含める

Page 95: Ossで作成するチーム開発環境

Jenkins MSBuild Pluginの設定

Page 96: Ossで作成するチーム開発環境

JenkinsでのMSBuild 設定

• MSBuildプラグインの追加• Jenkinsの全体設定–複数バージョンのMSBuildが設定できる

Page 97: Ossで作成するチーム開発環境

JenkinsでのMSBuild 設定

• プロジェクトでの設定–使用するバージョンとビルド対象、パラメータを使用する

–パラメータで”を使うときはバックスラッシュでエスケープする

Page 98: Ossで作成するチーム開発環境

JenkinsでのMSBuild 設定

• MSBuildの Property 設定– /p:DebugSymbols=true • テスト、カバレッジを組み込むのであれば PDBの

出力は必須– /p:ReferencePath=\” ~ \”• VSで設定した参照設定は .suoに書かれ他環境では引き継がれないので、 GACに登録されず、ローカルにバイナリの無いライブラリへのリファレンスを追加する。

Page 99: Ossで作成するチーム開発環境

Jenkinsでの自動テストとカバレッジ、静的コード解析

Page 100: Ossで作成するチーム開発環境

Jenkinsでの NUnitの設定

• Nunitプラグインの導入• プロジェクトでの設定–コマンドラインランナーの起動• ビルドの追加でWindowsバッチコマンドを選択する。• XMLファイルを明示的に指示する。

Page 101: Ossで作成するチーム開発環境

Jenkinsでの NUnitの設定

• コマンド例–これはカバレッジを組み込まない場合

"C:\Program Files (x86)\NUnit 2.6\bin\nunit-console.exe" %WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\Release\TestHokurikuDemo.dll /xml=nunit-result.xml /framework=net-4.0 exit 0

Page 102: Ossで作成するチーム開発環境

Jenkinsでの Nunitの設定

• テスト結果を収集するように設定

Page 103: Ossで作成するチーム開発環境

Jenkinsでの NUnitの設定

• ビルド結果表示

Page 104: Ossで作成するチーム開発環境

Jenkinsでの NUnitの設定

• テスト結果表示

Page 105: Ossで作成するチーム開発環境

Jenkinsでの NUnitの設定

• テスト履歴の表示

Page 106: Ossで作成するチーム開発環境

OpenCover

• OSSでフリーのコードカバレッジツール• X64環境に正式に対応している• .NET Framework 4.0 対応• 現状コンソールツールのみ• 結果表示には Report Generatorを使用する

Page 107: Ossで作成するチーム開発環境

OpenCoverと Jenkins

• プラグイン無し• ReportGeneratorの出力を HTML Publisherプラグインで表示させるようにする

Page 108: Ossで作成するチーム開発環境

OpenCoverと Jenkins

• OpenCoverから Nunitを起動して、単体テストとカバレッジの測定を行う。

cd /d %WORKSPACE%del result.xmldel TestResult.xmldel /s /q .\html\*.*"C:\Program Files (x86)\OpenCover\OpenCover.Console.exe" -register -target:"C:\Program Files (x86)\NUnit 2.6\bin\nunit-console.exe" -targetargs:"%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release\TestHokurikuDemo.dll /framework=net-4.0" -targetdir:"%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release" -filter:"+[HokurikuDemo]*" -output:result.xml

"C:\bin\reportgen\bin\reportgenerator" "result.xml" .\html

copy "%WORKSPACE%\HokurikuDemo\TestHokurikuDemo\bin\x64\Release\TestResult.xml" "%WORKSPACE%"

Page 109: Ossで作成するチーム開発環境

OpenCoverと Jenkins

• HTML Publisherプラグインの設定

Page 110: Ossで作成するチーム開発環境

OpenCoverと Jenkins

• 結果表示

Page 111: Ossで作成するチーム開発環境

OpenCoverと Jenkins

Page 112: Ossで作成するチーム開発環境

FxCopと Jenkins

• Windows バッチコマンドの実行ビルド手順を追加し、 FxCopを動作させる

• Violationプラグインで FxCopの設定を行う

Page 113: Ossで作成するチーム開発環境

FxCopと Jenkins

• FxCopを動作させる"C:\Program Files (x86)\Microsoft Fxcop 10.0\FxCopCmd.exe" /file:%WORKSPACE%\HokurikuDemo\HokurikuDemo\bin\Release\HokurikuDemo.exe /out:fxcop_result.xml

Page 114: Ossで作成するチーム開発環境

FxCopと Jenkins

• Violationプラグインの設定

Page 115: Ossで作成するチーム開発環境

FxCopと Jenkins

Page 116: Ossで作成するチーム開発環境

FxCopと Jenkins

Page 117: Ossで作成するチーム開発環境

FxCopと Jenkins

Page 118: Ossで作成するチーム開発環境

Task Scanner Plugin

• TODO, FIXMEなどのキーワードがついた残作業を示すコメントを集計して、作業漏れを確認できるようにする

• 指定されたキーワードのカウントと、キーワードのあった場所のハイライト

Page 119: Ossで作成するチーム開発環境

Task Scanner Plugin

Page 120: Ossで作成するチーム開発環境

Task Scanner Plugin

• プロジェクト毎に設定–対象ファイルのフィルタリング–対象キーワードと優先度–ソースファイルに合わせた文字エンコード指

定 (高度な設定 )

Page 121: Ossで作成するチーム開発環境

Task Scanner Plugin

• プロジェクトトップでの結果表示

Page 122: Ossで作成するチーム開発環境

Task Scanner Plugin

• サマリー

Page 123: Ossで作成するチーム開発環境

Task Scanner Plugin

• 詳細

Page 124: Ossで作成するチーム開発環境

Jenkins Plugin RSS

• TracLightningだと Jenkinsのプラグインインストール用の RSSの URIが登録されていない場合がある

• URIは以下の通り– http://updates.jenkins-ci.org/update-center.json

• 設定場所–プラグインマネージャ→高度な設定