Your SlideShare is downloading. ×
VCS - Version Control System at Security and Programming camp 2011
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

VCS - Version Control System at Security and Programming camp 2011

5,400
views

Published on

VCS - Version Control System at Security and Programming camp 2011 by Hiro Yoshioka

VCS - Version Control System at Security and Programming camp 2011 by Hiro Yoshioka

Published in: Technology

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,400
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ソースコード管理システム よしおかひろたか mailto:hyoshiok@gmail.com http://d.hatena.ne.jp/hyoshiok twitter @hyoshiok セキュリティ&プログラミングキャンプ 2011
  • 2. 目次 なぜソースコード管理システムが必要なのか 大規模分散開発 Git の紹介
  • 3. バージョン管理システム バージョン管理システムはなぜ必要なのか  VCS (Version Control System), SCM (Source Code Manager), RCS (Revision Control System) などとも 呼ばれている。  変更を管理したい  複数の人と共同作業をしたい
  • 4. 大規模分散開発 特徴  多くの人が開発に関与  それぞれ独立に開発をしていて他人の作業について すべて知っているわけではない  開発場所も分散している
  • 5. ソフトウェア開発のワークフロー ソフトウェアを変更するとき  機能追加、拡張、変更  バグフィックス  性能改善  リファクタリング(機能は変更しないけど、より保 守しやすい実装へ変更するなど)
  • 6. ワークフロー コミュニティーベースの開発の場合、様々な仕 事がある。  テスト  バグ登録  バグのトリアージ(優先順度付け)  バグのアサイン  コードの修正  ドキュメント執筆。翻訳。  レビュー。  その他いろいろ
  • 7. ソフトウェア開発のワークフロー ソースコードリポジトリから取り出す 変更する(コンパイルエラー、ビルドエラーを 取り除く) テストをする 期待どおりでない場合、(変更する、テストす る)を繰り返す ソースコードリポジトリへ戻す コンフリクトがある場合、コンフリクトを解消 するまで、上記を繰り返す
  • 8. リポジトリがなぜ必要なのか リポジトリ:ソースコードの保管場所 複数の人が共通のコードで作業をしているから  共同作業のかなめ
  • 9. なぜバージョン管理が必要なのか 変更部分を知りたい  なぜ、その変更をしたのか  どのように変更したのか  自分の変更を追加したときにプログラムが期待通り に動かなくなった原因を知りたい 誰が何をやっているか知りたい プロジェクトの進捗を知りたい いつからバグが入っているか知りたい
  • 10. バージョン管理システムの例 git subversion cvs sccs Rational Clearcase ( 商用製品 ) Microsoft Team Foundation Server ( 商用製品 )
  • 11. VCS への Linux での要求事項* 分散開発を容易にする 何千人の開発者をも扱えること 高速で効率よく動作すること 完全性と信頼を維持すること 説明責任を強制すること*実用 Git 、 Jon Loeliger ( 著 ) 、吉藤 英明 ( 監訳 ) 、 ISBN: 978-4873114408
  • 12. VCS への Linux での要求事項、2 不変性 アトミックなトランザクション 分散した開発に対応し後押しをすること 完全なリポジトリ すっきりとした内部設計 自由という意味でのフリー
  • 13. Git Linux の創始者の Linus Torvalds が必要性にか られて開発 分散型 特徴  高速  分散開発のサポート  ハッシュ (SHA1) による完全性の維持
  • 14. git の利用 help  $ git help  $ git help COMMAND  $ git COMMAND --help
  • 15. ユーザ設定 コミッターと著者の設定  $ git config –globall user.name ”Your Name”  $ git config –global user.email your@email.address 設定の確認  $ git config -l
  • 16. リポジトリの作成 既にあるリポジトリからのコピー  $ git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git  $ git clone https://github.com/ruby/ruby 新規に作成する  $ git init
  • 17. 変更 ファイルの追加、変更など  $ git add ファイル レポジトリへの反映  $ git commit  エディタが起動してコメント記入を求められる  $ git commit -m ”comments”
  • 18. 差分 $ git diff
  • 19. 履歴 $ git log $ git whatchanged
  • 20. レポジトリの更新 $ git pull レポジトリ名  外部のレポジトリとマージする
  • 21. 二分探索  $ git bisect  バグを発見したとき、どのバージョンからバグ が混入したか調べる$ git bisect start$ git bisect bad                 # Current version is bad$ git bisect good v2.6.13­rc2    # v2.6.13­rc2 was the last version                                 # tested that was good
  • 22. 典型的なワークフロー $ git clone レポジトリ 既存変更、テスト、デバッグなど $ git add ファイル名 $ git commit $ git push レポジトリ
  • 23. 付録: github について コメントを英語で書くのがなぜ推奨されるのか
  • 24. github https://github.com/ git レポジトリのホスティングサービス Ruby on Rails の開発などにも利用されている 無料でも使える 利用方法  アカウント作成  プロジェクト登録( git push などをして公開)  what are you coding ( 日々の活動をコードで表現)
  • 25. コメントは英語で インターネットは英語が公用語 英語で書く訓練になる
  • 26. 参考書 入門 Git 、濱野純、 ISBN:978-4798023809 実用 Git 、 Jon Loeliger ( 著 ) 、吉藤 英明 ( 監 訳 ) 、 ISBN: 978-4873114408

×