hgflow で開発環境、検証環境、本番環境の切り替えをうまく行うにはどのような方法が良いのでしょうか?

149 views
Skip to first unread message

ohira

unread,
Sep 10, 2015, 5:08:12 AM9/10/15
to mercurial-ja
hgflow で開発環境、検証環境、本番環境の切り替えをうまく行うにはどのような方法が良いのでしょうか?

おおひらです。いつもお世話になっております

開発対象が環境(開発、検証、本番)によって書き換える必要がある箇所が多くあるウェブサービスのため
現状の手作業での操作は無理がある状況です。手作業での操作を減らして作業の負荷を減らしたいと考えています。

各環境の変更点もmercurialの管理下に入れてうまく切り替え操作を行うにはどうしたら良いのでしょうか?

自分で考えた案はあるのですが、多分もっとまともなやり方があるように思うんです。
このやり方は問題があるとか、もっと簡単なやり方があるとかご指摘いただけるとたすかります。

以下自分の案の説明です。ソースコードは実際に動作確認したものではないのでミスがあるかもしれませんすいません。

案1
hg flow develop のstartとfinishの間で開発、検証、本番を切り替える。

下のような感じです。
...省略...
hg flow feature finish
hg flow develop start 2015-09-kaihatu
# 開発用に修正、コミット
# 開発環境で動作確認
hg flow develop finish
hg flow develop start 2015-09-kensyou
# 検証用に修正、コミット
# 検証環境で動作確認
hg flow develop finish
hg flow develop start 2015-09-honban
# 本番用に修正、コミット
# 本番環境で動作確認
hg flow develop finish
hg flow release finish

このやり方の問題点は、
-feature フローでの新機能開発中に開発環境でテストができない
-環境別に修正する作業に手間がかかる
-各環境の状態を比較し難い


案 2
それで、それぞれの環境用の修正をfeatureストリームに置いて
hg flow feature promoteを使えるのではないかと考えました。

下のような感じ
...省略...
hg flow feature finish
hg flow feature/kaihatu
hg flow promote
hg flow develop start 2015-09-kaihatu
# 開発環境で動作確認
hg flow develop finish
hg flow feature/kensyou
hg flow promote
hg flow develop start 2015-09-kensyou
# 検証環境で動作確認
hg flow develop finish
hg flow feature/honban
hg flow promote
hg flow develop start 2015-09-honban
# 本番環境で動作確認
hg flow develop finish
hg flow release finish

このやり方だと環境の切り替えは楽になります。
各環境の比較も楽になります。
問題点は
-feature フローでの新機能開発中に開発環境でテストができない
-このやり方で使えるように基本のソースを変更する必要がある
その上でさらにそれに合ったfeature/kaihatu, feature/kensyou, feauture/honbanを準備しなければならない。
(準備にかなり手間が掛かりそう)


案 3
featureストリームでの新機能開発やバグフィックス作業中に開発環境でテストできるように
promoteの送り先を変更することを考えました。

下のような感じ
...省略...
hg flow feature finish
hg flow feature start new1
hg flow feature/kaihatu
hg flow promote feature/new1
hg flow feature/new1
# new1 の修正、コミット
# 開発環境で動作確認
hg flow feature finish
hg flow feature start bugfix1
hg flow feature/kaihatu
hg flow promote feature/bugfix1
hg flow feature/bugfix1
# bugfix1の修正、コミット
# 開発環境で動作確認
hg flow feature finish
hg flow develop start 2015-09-kensyou
hg flow feature/kensyou
hg flow promote develop/2015-09-kensyou
hg flow develop/2015-09-kensyou
# 検証環境で動作確認
hg flow develop finish
hg flow develop start 2015-09-honban
hg flow feature/honban
hg flow promote develop/2015-09-honban
hg flow develop/2015-09-honban
# 本番環境で動作確認
hg flow develop finish
hg flow release finish


このやり方だと
feature フローでの新機能開発中に開発環境でテストができるようになります。
問題点は、
-このやり方で使えるように基本のソースを変更する必要がある
その上でさらにそれに合ったfeature/kaihatu, feature/kensyou, feauture/honbanを準備しなければならない。
(準備にかなり手間が掛かりそう)

案 4
現状基本のソースは本番環境になっていて、開発、検証中は別のものに入れ替えるようになっています。
そのため、なんとかfeature/kaihatu, feature/kensyouだけ準備して
feauture/honbanを準備しないで済むとすごく助かるのです。

今までの案1,案2,案3では、feature/kaihatu, feature/kensyou, feauture/honbanをプロモートしていましたが
feature/kaihatu, feature/kensyouはプロモートするとして、feauture/honbanをプロモートしないで
feature/kaihatu, feature/kensyouのプロモートを打ち消す処理を行うことはできないのでしょうか?
hg backout というのが使えそうなきもするのですが、マージ実施リビジョンに対しては実施できないとマニュアルにあります。

案3に近い状態の図を添付します。







spsブランチ運用案xml (3).pdf

Kaz Nishimura

unread,
Sep 10, 2015, 7:24:10 AM9/10/15
to mercurial-ja
私なら各環境で異なる部分はソースの外に出してしまいますね。同じ成果物を開発環境にデプロイすれば開発用として動いて、本番環境にデプロイすれば本番用に動くように環境の方に細工をします。
2015年9月10日(木) 18:08 ohira <shin....@gmail.com>:
--
from Mercurial 日本語コミュニティ <mercur...@googlegroups.com>
※ ヘルプ表示は http://groups.google.com/group/mercurial-ja?hl=ja
---
このメールは Google グループのグループ「mercurial-ja」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには mercurial-ja...@googlegroups.com にメールを送信してください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。

sakito

unread,
Sep 10, 2015, 10:31:16 AM9/10/15
to mercur...@googlegroups.com
おおひらさん

通常そのような事に hgflow は利用しないかと思います。

Nishimura さんのメールにあるように、設定ファイルに切り出して、
deploy 時に設定を変更するのが普通かと思います。

当然 設定を手作業で変更するのは面倒なのでテンプレートを利用するのが良いかと思います。

それにはfabric 等を使うと簡単です。
以下とか参考になると思います。
https://speakerdeck.com/drillbits/fabric-python-developers-festa-2013-dot-03-number-pyfes


設定ファイルとかのテンプレート化は「upload_templateメソッド」です。

fabric は python 2系でしか動作しませんが、
ローカルに pyhotn 2系があれば良いので、問題ないかと思います。

以上、参考になれば。

2015年9月10日 18:08 ohira <shin....@gmail.com>:
--
----
sakito
http://sakito.jp/
mailto:sak...@sakito.com

MacEmacs JP Project:
Project Summary http://sourceforge.jp/projects/macemacsjp/
Project Web http://macemacsjp.sourceforge.jp/
Users ML http://lists.sourceforge.jp/mailman/listinfo/macemacsjp-users
Reply all
Reply to author
Forward
0 new messages