cbe-archives () | 2015-06-01 23:46 |
cbe-omnios (20150601) | 2015-06-01 23:47 |
バージョン管理には Mercurial を使用します。Mercurial に関する詳細は、以下の情報を適宜参照してください。
※ 以下は 2012-03-24 時点での暫定運用ルール
各スペックファイル毎の作業は、個別の名前付きブランチで実施します。
スペックを SPECNAME とした場合、対応するブランチの名前は spec_SPECNAME とします。
新規のスペックファイルを追加する場合、以下の手順で当該スペック用のブランチを生成してください (以下は SFECeblib スペックでの例)。
$ hg pull # 共有リポジトリから最新成果の取り込み $ hg update default # 作業領域を default ブランチの最新で更新 $ hg branch spec_SFEeblib # 以後のコミットのブランチを変更 $ hg tag spec_SFEeblib_base # ブランチ元のリビジョンにタグ付け # (= 当該ブランチの初回コミット) $ hg push --new-branch # 共有リポジトリへの成果反映
Mercurial の版によっては、hg push の --new-branch オプションが使用できない場合があります。--new-branch 無しで『連携先でヘッドが増える云々』と警告される場合は、hg push -f を実施してください。
但し、間違って hg push -f を実施した場合、『マルチプルヘッド』と呼ばれる状態になってしまう可能性があるので注意してください (履歴管理上致命的な状態ではありませんが、事後対処が必要です)。
既にスペックに対応する名前付きブランチが生成されている場合は、当該ブランチで作業をしてください。
$ hg pull # 共有リポジトリから最新成果の取り込み $ hg update spec_SFEeblib
現行の作業領域が、対応するブランチ上にある場合は、hg update に対するブランチ名指定を省略しても構いません。この場合は、現行の名前付きブランチにおける最新版で作業領域が更新されます。
$ hg branch # 現行ブランチの表示 spec_SFEeblib $ hg update
スペック毎ブランチでの作業がリリース品質に達した場合、各スペックの担当者は、当該リビジョンを default ブランチにマージしてください (以下は SFEeblib の例)。
$ hg pull # 共有リポジトリから最新成果の取り込み $ hg update default # 作業領域を default ブランチの最新で更新 $ hg merge spec_SFEeblib ※ 衝突 (conflict) が発生した場合は、適宜 hg resolve を実施 $ hg commit -m merge # マージリビジョンのコミット $ hg push # 共有リポジトリへの成果反映
Mercurial での作業に慣れるまでは、commit 前後の hg parents による親リビジョン確認や、push 前の hg outgoing による反映予定リビジョンの確認などを行うと良いでしょう。
コミットログは、以下の形式で記述してください。
記述例(1):
SFEeblib: 初期コンテンツを追加
※ この例の場合、"hg log -v" 等で参照可能な、当該スペック用に追加したファイルの一覧等は、記載する必要がありません。
記述例(1):
SFEeblib: 汎用オブジェクトを生成するためにコンパイルオプションを変更 元の設定で使用していたコンパイルオプション xxxx は、 zzzz 環境固有のオブジェクトを生成する要因となっていたので、 このオプションの代わりに yyyy を使用するように修正。
なお、スペックファイルに記述する changelog は、あくまでスペックファイル (あるいはそこから参照される関連ファイル) 自体に対する変更に関する履歴です。必ずしも Mercurial におけるコミットログと同一になるとは限りませんので、注意してください。
※ 以下は 2012-03-24 時点での暫定運用ルール
スペック毎作業用のブランチを生成する際に、ブランチ元リビジョンに対してタグを付けます。
タグの形式は、スペック毎ブランチの名前を spec_SPECNAME とした場合、spec_SPECNAME_base とします。
TBD