2010-11-18 14 views
2

問題は、Mercurialまたはgitを開発のフロントエンドとして使用できるようにすることですが、通常は統合のSubversionでチェンジセットと更新を行いますブランチ、またはMercurialのスクリプトによってのみ書き込まれるもの、または変更が通知されたときにはHudsonによって書き込まれます。 SVNを使用している他の開発者が行った変更でMercurialリポジトリが更新され、新しい開発バージョンなどを提供する前に、変更を取り込んでそれらを統合して変更をテストします。開発チーム向けにSVNを使用したGIT/Mercurial Crossover

次のシナリオが可能であれば、マージする開発チーム&分岐?それとももっと良い方法があれば...強力な人を武装させるだけでなく、ひとつのツールを使うことができるのですか?

次の戦略は、以下のコンポーネントから構成されている:

  • Mercurialの開発リポジトリ
  • は以下の構成で Mercurialのと

    • SVN SVNの
    • 1対1クローン更新は、通常、SVN/trunkからクローン(hgsubversion)にプルされます。クローンは読み取り専用で、定期的に変更を取り込むスクリプトを持っています。クローンは、開発リポジトリにクローンされます。これは読み書き可能です(これは通常のMercurial Repoです)。開発者がこの開発者リポジトリに変更を加えると、統合ブランチにある要素がSVN/integrationブランチにプッシュされます。このブランチは、自動化されたスクリプトによってのみコミットされます。 svnを使用する他の開発者が変更をSVNのトランクにプッシュするだけであれば、クローンに引き込んでMercurialの環境内でマージすることができます。欠点は、変更が発生したSVNレベルでの可視性を失うことです。 DVCSを使用して上のコースで

      [[[[ trunk [[[[[[[[[[[[[[[[[[[[[[[[ SVN ]]]]]]]]]]]] branch/integration ]]]]]]]]]]]]]]]]]] 
           |             ^
           |             | 
           |             | 
           v             | 
      SVN - Mercurial Clone          | 
           |             | 
           |             | 
           |             | 
           v             | 
      Mercurial - Development ---------------------------- Branch - Integration 
      
    +0

    私は開発のフロントエンドで言及する必要があります、私はすでにhgsubversionを使用しています。しかし、私はチームベースの分散開発を利用できるようにしたいと考えています。 – Gary

    +1

    私は個人的に強烈なアプローチが好きです:)とMercurialの使用法は、SVNと非常によく似ています。 – erjiang

    答えて

    3

    は、それは実際に私が説明主な使用例1、と私は素晴らしいDVCSesがいかに深くショーを考える1 ...

    あなたはそれを行うには、いくつかの方法があります。

    マニュアル道

    あなたSVN /チェックアウトコードは、その後、のHg/initを水銀は/すべてをコミットします。 Hgの下であなたの仕事をしてください。小さな修正を頻繁にコミットします。です。あなたがSVNにコミットしたいときは、最初にHg/upをSVN/checkoutの直後に行ったHgリビジョンに戻します。あなたSVN/up平凡なSVNリビジョンから更新したばかりなので、はSVNの競合はありません。あなたHg /コミットHg /マージ、次にSVN /コミットです。誰かがSVNでコミットした場合、Hg/upを最後のクリーンなSVNリビジョン、SVN/upおよびHg/commit + mergeまで繰り返します。

    最新のSVNクリーンリビジョンを追跡する方法はあなた次第です。毎回変更するタグを使用して、ブランチや別のリポジトリにSVNリビジョンを保持することができます。TIMTOWTDI

    追加給付:これはまた、彼らは外部のバージョン管理されることなく、水銀を使用している人々のためのSVNのコミッターとして使用する方法です。

    自動道

    私はそのように使用されたことがありませんが、tailorを繰り返し、SVN/Hgの変換両方の方法を行うことができます。

    +1

    Yah、私はSVNから水銀への移行中にこのプロセスを使用してしまいました。私は基本的に、残りのSVNアップデートのためのブランチを持っていました。誰もが解決して、私たちが水銀環境でのテストの移行を扱っている限り、私は最後のSVNアップデートを引っ張って、水銀の変更と合併し、新しい開発が始まると宣言したデフォルトにしました。うまくいった。 – Gary

    関連する問題