• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
VCS - Version Control System at Security and Programming camp 2011
 

VCS - Version Control System at Security and Programming camp 2011

on

  • 5,595 views

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

Statistics

Views

Total Views
5,595
Views on SlideShare
1,897
Embed Views
3,698

Actions

Likes
2
Downloads
5
Comments
0

6 Embeds 3,698

http://d.hatena.ne.jp 3687
http://www.slideshare.net 3
http://webcache.googleusercontent.com 3
http://twitter.com 2
http://s.deeeki.com 2
http://freerss.net 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011 Presentation Transcript

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