2011-07-20 7 views
1

この質問をいくつかの方法で尋ねましたが、その答えは回避策または2つ以上の異なるバージョンを維持する必要がない方法です。しかし、私は自分の環境(Visual Foxpro)で回避策があるとは思わない。現在、私は2つの異なるリポジトリを維持する:同じコードベースのわずかに異なるバージョンのソース管理を管理するための最良の方法

  • ライブ - 生産
  • のコード
  • 証明 - 生きるために時折同一であるが、通常は、それは多くの新機能のいずれかのための 実験場があるだけでなく、それを証明する書類がほとんど(すべてではない)を費やしているので、私はちょうど枝に状況を処理する方法が表示されていない

を生きて変更 ステージング領域は、より多くのフォークのように見える時が来ました。たとえば、現在では、Liveとは大きく異なる1つのコードセクションがあります。これは、現在では1年近くも忙しかったことです。現在のところ、さまざまな段階で承認されているLiveとは異なる10のマイナー機能もあります。

私が自分で尋ねる2つのリポジトリ間でdiff'ingとマージしている日はたくさんありますが、なぜこれが同じコードベースの分岐ではないのでしょうか。しかし、私はそれがどのように可能かを見ていない。証拠は私自身が生きていることであり、ライブとは別にコンパイルして維持する必要がある(私のジレンマである単一のコードベースを排除する最後の記述には何もないことは分かっているが)。

私は、Proofは本当にフォークのほうが多いので、別のリポジトリで管理しなければならないのでしょうか?

ところで、質問にはそれほど重要ではありませんが、選択したVCSはMercurialです。

+1

技術的には、* Live *と* Proof *が同じリポジトリ内で2つのブランチになってはならない理由はありません。実際には、彼らがいくつかのコードを共有する場合、それは理にかなっています。フォークとブランチの区別は(コードベースの違いによって異なります)ここではあまり関係ありません。だから、実際に2つ(またはそれ以上)のブランチで1つのRepoを使用することを止めるのはどうですか? –

答えて

4

私たちが私の店でやっていることは、実際にリリースされているコード(実際のもの)を作業中のものとは別に保存することです。use default and stable branches

名前付きブランチに加えて、新しい機能/追加ごとのクローンがあります。 defaultブランチに複数のヘッドを置くよりも、ちょっとだけ快適です。

プロダクションにリリースされたコードの状態を独自の名前付きブランチに保持することで、事故をなくすことができます。準備ができていないものを押すだけでLive Repoを台無しにするのではなく、その変更をLiveブランチに明示的にマージする必要があります。

1

これは正確な状況にどのように当てはまるのかよく分かりませんが、実行中の変更を別々のブランチとして保持し、これらの追加ブランチがすべてマージされた現在のLiveにすることができますか?そして、それは非常に前向きな統合チェックとして機能し、各ブランチはLiveにマージ可能でなければならないことも知っています(まだマージされていないものに依存しないと仮定します)。

関連する問題