はしていますが合併し、コミット時には毎回更新Mercurial支店のサーバー?
質問
を使用していMercurialの最近のプロジェクト.のウェブサーバーという仕組みを導入し、プロジェクトかつ若干異なる設定ファイルの生産を設定します。この問題をするのがとても楽しみでした pull
や update
, いことがしばしば merge
や commit
しています。
これは正しいワークフロー?るようで不思議なことで可能にするためにアップデートを続けている為、チェンジセット、きっかけになるかもしれないとしのマーが統合した形で私の生産支店を続けていた。この分散型バージョン管理のパラダイムばかりではないですか。
解決
このような取り扱い この質問, いと思うが良いのでとります。
短:あります。こちらはカブトムシやクワガタexpanation:
だから始められることをメインにリポジトリのボックスチェンジセット):
main: --[E]--[F]--[G]
そのクローンの生産をサーバーに追加チェンジセット、H、その展開のカスタマイズ.での展開をレポ-レートは以下のようなものです:
production: --[E]--[F]--[G]--[H]
そしてより作業がメインレポ-レートをチェンジセット、I、J、本レポのように見え:
main: --[E]--[F]--[G]--[I]--[J]
るときに引っ張られてしまうといった生産は次のように記述されています。
production: --[E]--[F]--[G]--[I]--[J]
\
\-[H]
二頭には、合併による取得す:
production: --[E]--[F]--[G]--[I]--[J]
\ \
\-[H]-----[K]
ここでKはJプラスの変化をきたH.
その作業がメインで、:
main: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
を引きの生産を与え:
production: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
\ \
\-[H]-----[K]
しまいますし、それに合併した
production: --[E]--[F]--[G]--[I]--[J]--[L]--[M]
\ \ \
\-[H]-----[K]-------[N]
ですからだの変化からメインに、やっている一つが合併し、新たなルーチェンジセット(この時間。
それでいいんじゃないんでまいました。
でき、しかし、回避を使用することにより、回答の問いへい や が新たなトリックを使用でき続 修正 元のH親(およびコンテンツ)でも動きのある新しい。
フレキシビリティの Rebase延長 という伏線形履歴の生産がんがとうございます基本的には合併による取得します。んのファンでんのように変化するチェンジセット後、彼らが犯したが、Hはなく、生産のボックスでも大丈夫です。
その他の回答の mercurialキュー や の生産変動にdevレポ得によるものとは異なる生産環境 (主催:ヘッダ).
他のヒント
1 つのオプションは、サーバー固有の展開設定をバージョン管理リポジトリから完全に除外することです。
これは、それらをサーバー上で手動でアップロードして変更することを意味しますが、常にマージする必要がなくなります。また、データベースのパスワードなどもバージョン管理の対象外になりますが、これはおそらく良いことでしょう。
たとえば、Django アプリケーションで作業するときは、 settings.py
以下を含むファイル:
- サーバー間で変わらないすべての設定 (サイト名、インストールされている Django アプリなど)。
- ローカル開発用の「サーバー固有」設定 (データベースの場所など)。
- この線
from deploy import *
最後に。
の from deploy import *
行はすべての項目を取り込みます deploy.py
ファイルが存在する場合。テスト/ステージング/運用サーバー上でこのファイルを作成し、サーバー固有の設定をその中に入れます。インポートは最後に行われるため、 settings.py
これらは、メイン設定ファイル内のローカル開発固有の設定を上書きします。
この方法で実行すると、ローカルでの実行と開発に必要なものはすべてバージョン管理にチェックインされますが、サーバー固有の情報や機密情報 (パスワードなど) はチェックインされません (したがって、マージする必要はありません)。セットアップには少し追加の作業が必要です (インポート行を追加し、 deploy.py
最初はサーバー上にファイルがあります)。
この特定のスキームは Django プロジェクト用ですが、同様のアイデアがうまくいくかもしれません。