SubversionとTracを使って,バージョン管理をしようと思います。
truk,branches,tagsの扱い方がわからなかったりするので・・・

trunk,branches,tagsについて anchor.png

Page Top

trunk,branches,tagsの役割 anchor.png

trunk主となるドキュメントやプログラムを管理するリポジトリ。このリポジトリから直接リリースすることはしない。ここでの作業はbranchesには影響しない。
branchesリリース用のパッケージ。trunkからA.B.Xと採番して分岐を作り,リリースパッケージ開発&バグFIX用のリポジトリとする。branchesで行った修正は,まとめてtrunkにマージすることによって,trunkに反映させられる。trunkと違って,一度切られたbranchesは不具合などが出るまでは変更がないようにする必要がある。
tagsbranchsで実リリースを行ったときのリビジョンのスナップショット。目印や区切りを付けるために使用する,いわゆるベースラインのこと。リリース直後の一通りのソースが取得できるようにしておいて,その後の修正で何かあった場合そこまですぐに戻せたりすることがきるるので便利に活用できる。
Page Top

リリースの手順とtrunk,branches,tagsの分岐の関係 anchor.png

リリースするときに,最新のtrunkから「X.Y.Z」というリリース用のブランチを作成する。
そのブランチを安定させた時点で「X.Y.0」とタグをつけて本番リリースする。
非安定版の場合は,「X.Y.0-alphaM」,「X.Y.0-betaN」,「X.Y.0-rcL」などとリリース番号にα版,β版,rc版であることを明記するようにする。

下図は,リリース用の「1.0.X」ブランチを作成し,リリースする毎に「1.0.0」,「1.0.1」,「1.0.2」などと,バージョンを採番してタグを作成している。

tagBranchTrunk.png
Page Top

branchesを作成するときの注意点 anchor.png

Page Top

必ずtrunkから分岐させる anchor.png

メインラインとなるtrunkは最新開発用ブランチという役割を保つために,分岐は必ずtrunkから行うことにする。
branchesから分岐させて孫のbranches,ひ孫のbranchesをさせてしまうと,trunkへのマージ作業が複雑化し,わけがわからなくなる。

Page Top

trunkは正しくビルドできる状態で保つ anchor.png

開発者は,メインライン(trunk)に対して作業を行う。コミット時にコンパイルエラーが起きないようにする。

Page Top

branchesの変更は,即効でメインライン(trunk)に反映させる anchor.png

branchesに対するメンテナンス期間が長いほど,trunkへのマージ作業が増大し,マージ作業が困難となる。ブランチを作成して分岐した場合,その変更内容をすばやくメインラインに戻すように心がける。

Page Top

リリース番号の付け方 anchor.png

リリース番号のつけ方を以下のようにする。
Apacheで使っている方法で,命名規則は下記のようにする。

MAJOR.MINOR.PATCH

例えば,「2.0.6」なら,「メジャーバージョン2,マイナーバージョン0,パッチバージョン6」となる。
どの階層で番号を増やすかは,下記のレベルで決める。

PATCHバグフィックスのような,絶対にコードを壊さない変更の場合
MINOR新しくAPIが追加される場合(APIの削除はなし)
MAJORAPIを完全にリニューアルする場合

番号の増やし方は以下の通り

Page Top

PATCH anchor.png

1.0.2⇒1.0.3のように同じMAJOR,MINOR系列でPATCHの番号を1つ増やす

Page Top

MINOR anchor.png

1.0.3⇒1.1.0のように同じMAJOR系列でMINORの番号を1つ増やす。PATCH番号はリセットする。

Page Top

MAJOR anchor.png

1.1.0⇒2.0.0のようにMAJORの番号を1つ増やす。MINOR,PATCH番号はリセットする

Page Top

TracのBTSとSubversionの版管理を仲良くするためには。。。 anchor.png

Tracにはチケット発行管理とマイルストーン管理がある。Subversionにはtrunk,tags,branchesの管理がある。この2システムをうまく対応させたい。

Page Top

チケット anchor.png

チケットは作業ごとに分類して発行すればよい。
作業分類は主に以下のとおり

Page Top

仕様FIX anchor.png

開発するプロジェクトの仕様をFIXするタスク

Page Top

仕様変更 anchor.png

仕様FIXしたんだけど、ユーザの気が変って仕様が変わったときの改修作業

Page Top

機能追加 anchor.png

仕様FIXしたんだけど、ユーザに欲が出てきて、機能を追加することになった開発作業

Page Top

リリース anchor.png

本番へのリリース作業

Page Top

バグ対応 anchor.png

名前の通り,バグが発生したときに発行するチケット。チケットを発行したら,コメントに暫定対応したものとかコードの修正とかを記録する。

Page Top

サーバ障害 anchor.png

サーバ障害が発生したときに,発行するチケット。どんな対応をして対応したかををコメントに記述する

Page Top

サーバ設定作業 anchor.png

アプリケーションを動かすのに必要な,サーバの設定。新規に導入したサーバをデータセンターに設置するとか,OSをUPDATEするとか,pluginをインストールするとか。

Page Top

調査 anchor.png

アプリケーションを動かすのに必要なミドルウェア,サーバのスペックの調査など。
Tracでは,チケットタイプはデフォルトでは英語名だが,日本語名で管理できる。TracにAdminプラグインを追加するとGUIで管理できる。

Page Top

チケットの状態遷移 anchor.png

チケットの寿命は主に5つの状態がある。

Page Top

1.チケット発行 anchor.png

プロジェクトに関して,作業が発生したときにチケットを発行する。

Page Top

2.作業者割り当て anchor.png

作業をする担当者を決定。PMOみたいな任命奉行がいなければ自己申告で決定。

Page Top

3.作業着手 anchor.png

今,その作業を手につけているのか。作業をしているなその作業状況をコメントに記述する。

Page Top

4.チケットクローズ anchor.png

作業が終了したらCLOSEする。そのチケットがコーディング作業ならば,Subversionでコミットしたリビジョンを記入する。
そのほうが,チケットとリビジョンの関連付けができる。
チケット1枚に対し,どのような改修が発生したか,Tracのリポジトリブラウザで
改修履歴を追うことができるし,改修に要したボリューム,工数を調べることができる。

Page Top

5.クローズしたチケットの差し戻し anchor.png

クローズしたチケットについて,再度対応しなければならないときに差し戻しをする。
FIXしたはずバグが再発したときの場合など。

Page Top

ロードマップ anchor.png

Page Top

ロードマップの位置づけ anchor.png

  1. ロードマップはプロジェクトの将来の開発計画と管理に役立つ。
  2. ロードマップはチームの所信表明演説みたいなものである。
Page Top

ロードマップを実現するためには anchor.png

  1. ロードマップはマイルストーンというで作業単位に分割してスケジュール管理する。
  2. マイルストーンにチケットを紐付ける。
  3. 紐付けると,マイルストーンを実現するためにどんな作業が必要か把握できるし,
  4. 全チケットのうち,チケットを消化した進み具合で,何%まで進捗が進んだのかも把握できる。
Page Top

マイルストーン anchor.png

  1. チケットはマイルストーン毎に集約させる。そうするとマイルストーンの進捗度合いがチケットのCLOSE数により,何%まで進んだか視覚的に把握できる。
  2. マイルストーンの名前は「プロジェクト名-A.B.X」といった命名規則にするとわかりやすい。
  3. マイルストーンは,アプリケーションのリリースのたびに作成すると便利。ただし,イルストーンの作成タイミングは,MINORバージョンのUPのたびに発行する。PATCHレベルの粒度では新規にマイルストーンを発行しない。

新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 2479, today: 2, yesterday: 0
最終更新: 2020-12-26 (土) 16:07:50 (JST) (1216d) by yuji