Mercurial shelveとmq
- 2. アジェンダ
▌現状の開発
?現在のブランチ管理
?抱えている問題点
▌MQ
?MQとは
?使い方(コマンドラインから)
?使い方(TortoiseHGから)
?小技
▌MercurialSelve
?MercurialSelveとは
?使い方
2
- 3. 现在のブランチ管理(1)
develop
default
hotfix
develop
develop
ブランチが多い
3
- 4. 现在のブランチ管理(2)
develop
default
hotfix
develop
develop
マージ作業が多発
4
- 7. MQとは
MQ は Mercurial に実装されている拡張機能で
す。
利用する際は明示的に有効化の設定をする
必要があります。
(ダウンロードの必要はありませ ん。 MQ は
通常の
Mercurial の配布物に含まれています)。
7
- 9. 基本コマンド
▌qnew
?MQのオプションを確認する。
▌qimport (-r XXXX)
?変更(リビジョンXXXX)をMQに入れる(パッチ化する)。
▌qseries
?MQに格納されているパッチを表示する。
▌qpop (-a)
?パッチの適応を1つ解除。 (-aで全て)
▌qpush (-a)
?パッチの1つ適応する。 (-aで全て)
▌qfinish (-a)
?MQに入れたものを元に戻す。
9
- 12. コマンドライン
MQにインポート(パッチ化)
③MQにインポート
直前にコミットした変更がMQにインポートされます。
tipはリビジョン番号でもOK
$ hg import -r tip
default 12
- 13. コマンドライン
パッチの適用解除
④パッチの適用解除
パッチを一つ解除する。
ローカルのソースへの変更がなくなります。
$ hg pop
default 13
- 14. コマンドライン
パッチの適用
⑦パッチの適用
直前に解除したパッチが一つ適応されます。
ローカルのソースは変更されます。
$ hg push
develop/2012XXXX 14
- 15. コマンドライン
通常リビジョン化
⑧通常リビジョン化
適応されているパッチが全てリビジョンとなります。
$ hg qfinish -a
develop/2012XXXX 15
- 16. コマンドライン
ブランチがない状態での開発手順
★コマンドのまとめ
#①コードを修正する
$ hg commit –m ‘commit message’ #②コミットする
$ hg qimport –r tip #③MQにインポート
$ hg qpop –r #④パッチ適用解除
$ hg pull -u #⑤ブランチを取り込
$ hg up develop/2012XXXX む
$ hg qpush #⑥ブランチに移動す
$ hg qfinish –a る
#⑦パッチの適用
#⑧通常リビジョン化
16
- 21. TortoiseHG
変更をパッチ化する
②変更をパッチ化する
a.右クリックしてメニューを選び『Hg Commit』を選択する。
b.コミットの▼をクリックしてメニューを開きパッチを作成に変
更する。
c.『パッチを作成』のボタンをクリックする。
default 21
- 22. TortoiseHG
パッチの適用解除
③パッチの適用解除
a.パッチ化したリビ
ジョンを右クリックし
てメニューを開く 。
b.『履歴を修正』を選
択。
c.『パッチを適用解
除』を選択。
default 22
- 23. TortoiseHG
パッチの適用
⑦パッチの適応
a.パッチ化したリビ
ジョンを右クリックし
てメニューを開く 。
b.『パッチを適用』を
選択。
develop/2012XXXX 23
- 24. TortoiseHG
通常リビジョン化
⑧通常リビジョン化
a.パッチ化したリビ
ジョンを右クリックし
てメニューを開く 。
b.『履歴を修正』を選
択。
c.『パッチを通常リビ
ジョン化』を選択。
develop/2012XXXX 24
- 26. TortoiseHG
MQへのインポート
①MQへのインポート
a.パッチ化したいリビ
ジョンを右クリックし
てメニューを開く 。
b.『履歴を修正』を選
択。
c.『MQへインポー
ト』を選択。
default 26
- 28. リビジョンの統合
★コマンドのまとめ
$ hg qimport –r 10001::10002::10003 #①MQにインポート
$ hg qpop -a #②パッチ適用解除
$ hg qfold 10001.diff #③パッチの統合
$ hg qrefresh #④変更を確定
$ hg qfinish -a #⑤パッチ適用
10001 10002 10003 28
- 29. リビジョンの入れ替え
①入れ替えたいリビジョンをパッチ化
する。
②パッチ適用を解除する。
③ドラック&ドロップで順番を入れ替
える。
④パッチを適用する。
⑤通常リビジョン化する。
10001 10002 10002 10001 29
- 31. 使い方
①Hg Workbenchを開く
②メニューから『リポジトリ』を選択
③『シェルフ』をクリックする。
31
- 32. 変更の退避
退避したいファイル
を選択して右向きの
矢印をクリック。
32