2: 2009-08-27 (木) 08:10:45 yuji |
現: 2020-12-26 (土) 16:07:50 yuji |
- | SubversionとTracの両方をうまく運用するための指針です。~ | + | #clear |
- | Tracをインストールしても,マイルストーンの使い方がいま一つピンとこなかったり,~ | + | SubversionとTracを使って,バージョン管理をしようと思います。~ |
- | Subversionをインストールしても,truk,branches,tagの扱い方がわからなかったりするので・・・ | + | truk,branches,tagsの扱い方がわからなかったりするので・・・ |
| | | |
- | *trunk,branch,tagについて [#e05ff059] | + | *trunk,branches,tagsについて [#e05ff059] |
- | **trunk,branch,tagの役割 [#l1204a8a] | + | **trunk,branches,tagsの役割 [#l1204a8a] |
- | |trunk|常に最新機能の開発に使うリポジトリ。このリポジトリから直接リリースすることはしない| | + | |
- | |branches|リリース用のパッケージ。trunkからA.B.Xと採番して分岐を作り、リリースパッケージ開発&バグFIX用のリポジトリとする| | + | |
- | |tag|branchで実リリースを行ったときのリビジョンのスナップショット| | + | |
| | | |
- | **リリースの手順とtrunk,branch,tagの分岐の関係 [#p1e2956e] | + | |trunk|主となるドキュメントやプログラムを管理するリポジトリ。このリポジトリから直接リリースすることはしない。ここでの作業はbranchesには影響しない。| |
| + | |branches|リリース用のパッケージ。trunkからA.B.Xと採番して分岐を作り,リリースパッケージ開発&バグFIX用のリポジトリとする。branchesで行った修正は,まとめてtrunkにマージすることによって,trunkに反映させられる。trunkと違って,一度切られたbranchesは不具合などが出るまでは変更がないようにする必要がある。| |
| + | |tags|branchsで実リリースを行ったときのリビジョンのスナップショット。目印や区切りを付けるために使用する,いわゆるベースラインのこと。リリース直後の一通りのソースが取得できるようにしておいて,その後の修正で何かあった場合そこまですぐに戻せたりすることがきるるので便利に活用できる。| |
| + | |
| + | **リリースの手順とtrunk,branches,tagsの分岐の関係 [#p1e2956e] |
| リリースするときに,最新のtrunkから「X.Y.Z」というリリース用のブランチを作成する。~ | | リリースするときに,最新のtrunkから「X.Y.Z」というリリース用のブランチを作成する。~ |
| そのブランチを安定させた時点で「X.Y.0」とタグをつけて本番リリースする。~ | | そのブランチを安定させた時点で「X.Y.0」とタグをつけて本番リリースする。~ |
- | 非安定版の場合は,「X.Y.0-alphaM」,「X.Y.0-betaN」,「X.Y.0-rcL」などとリリース番号にα版,β版,rc版であることを明記する。 | + | 非安定版の場合は,「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」などと,バージョンを採番してタグを作成している。 | | 下図は,リリース用の「1.0.X」ブランチを作成し,リリースする毎に「1.0.0」,「1.0.1」,「1.0.2」などと,バージョンを採番してタグを作成している。 |
- | #ref(tagBranchTrunk.png) | |
| | | |
| + | #ref(tagBranchTrunk.png) |
| | | |
| **branchesを作成するときの注意点 [#z1823c6a] | | **branchesを作成するときの注意点 [#z1823c6a] |
| ***必ずtrunkから分岐させる [#w7e29db1] | | ***必ずtrunkから分岐させる [#w7e29db1] |
- | メインラインとなるtrunkは最新開発用ブランチという役割を保つために,分岐は必ずtrunkから行う。~ | + | メインラインとなるtrunkは最新開発用ブランチという役割を保つために,分岐は必ずtrunkから行うことにする。~ |
- | branchesから分岐させて孫のbranch,ひ孫のbranchesをさせてしまうと,trunkへのマージ作業が複雑化し,デグレを起すリスクが高い。 | + | branchesから分岐させて孫のbranches,ひ孫のbranchesをさせてしまうと,trunkへのマージ作業が複雑化し,わけがわからなくなる。 |
| | | |
| ***trunkは正しくビルドできる状態で保つ [#ef32a3c8] | | ***trunkは正しくビルドできる状態で保つ [#ef32a3c8] |
- | 全ての開発者は,メインラインに対して作業を行う。コミット時にコンパイルエラーが起きないようにすること。 | + | 開発者は,メインライン(trunk)に対して作業を行う。コミット時にコンパイルエラーが起きないようにする。 |
| | | |
| ***branchesの変更は,即効でメインライン(trunk)に反映させる [#l179f607] | | ***branchesの変更は,即効でメインライン(trunk)に反映させる [#l179f607] |
- | branchに対するメンテナンス期間が長いほど,trunkへのマージ作業が増大し,マージ作業が困難となる。ブランチを作成して分岐したばあい,その変更内容はすばやくメインラインに戻しましょう。 | + | branchesに対するメンテナンス期間が長いほど,trunkへのマージ作業が増大し,マージ作業が困難となる。ブランチを作成して分岐した場合,その変更内容をすばやくメインラインに戻すように心がける。 |
| | | |
- | **リリース番号の採番方法 [#p67ce8df] | + | **リリース番号の付け方 [#p67ce8df] |
| リリース番号のつけ方を以下のようにする。~ | | リリース番号のつけ方を以下のようにする。~ |
- | Apacheで運用している方法で,APR(Apache Portuble Runtime)という方法です。3階層で管理しており,命名規則は下記の通りである。 | + | Apacheで使っている方法で,命名規則は下記のようにする。 |
| MAJOR.MINOR.PATCH | | MAJOR.MINOR.PATCH |
| 例えば,「2.0.6」なら,「メジャーバージョン2,マイナーバージョン0,パッチバージョン6」となる。~ | | 例えば,「2.0.6」なら,「メジャーバージョン2,マイナーバージョン0,パッチバージョン6」となる。~ |
| | | |
| *TracのBTSとSubversionの版管理を仲良くするためには。。。 [#q1a18018] | | *TracのBTSとSubversionの版管理を仲良くするためには。。。 [#q1a18018] |
- | Tracにはチケット発行管理とマイルストーン管理がある。Subversionにはtrunk,tag,branchesの管理がある。この2システムの管理方法をうまく運用する方法はないものだろうか? | + | Tracにはチケット発行管理とマイルストーン管理がある。Subversionにはtrunk,tags,branchesの管理がある。この2システムをうまく対応させたい。 |
| | | |
| **チケット [#scc7dbc9] | | **チケット [#scc7dbc9] |