2

問題は、開発のフロント エンドとして Mercurial または git を使用できるようにしたいのですが、変更セットと更新を Subversion で、通常は統合ブランチまたはスクリプトによってのみ書き込まれる何かで行うことです。 Mercurial、または変更に気付いた場合の Hudson による。次に、SVN を使用している他の開発者が行った変更で Mercurial リポジトリが更新されます。変更をプルして統合し、新しい開発バージョンを提供する前に変更をテストします。

マージと分岐を使用する開発チームで次のシナリオが可能かどうかは誰にもわかりませんか? それとも、より良い方法があるとしたら...強力な武器を使用して 1 つのツールを使用する以外に?

次の戦略は、次のコンポーネントで構成されています。

  • SVN
  • Mercurial を使用した SVN の 1 対 1 のクローン
  • Mercurial 開発リポジトリ

以下の構成では、通常、更新は SVN/trunk からクローン (hgsubversion) にプルされます。クローンは読み取り専用で、定期的に変更を取得するスクリプトを持っています。クローンは、読み書き可能な開発リポジトリにクローンされます (通常の Mercurial リポジトリです)。開発者がこの開発者リポジトリに変更をプッシュすると、統合ブランチにある要素が SVN/統合ブランチにプッシュされます。このブランチは、自動化されたスクリプトによってのみコミットされます。svn を使用している他の開発者が変更を SVN のトランクにプッシュするだけの場合、それらはクローンにプルされ、Mercurial の環境内でマージされます。欠点は、変更が行われた SVN レベルで可視性が失われることです。

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

1 に答える 1

3

DVCS の使用に関するコースでは、これが実際に私が説明する主な使用例の 1 つであり、DVCS がどれほど素晴らしいかを示していると思います...

いくつかの方法があります。

手動の方法

コードを SVN/チェックアウトしてから、Hg / initHg/commitすべてを実行します。次に、Hg の下で作業を行い、ローカルで、必要に応じて小規模かつ頻繁にアトミックな変更をコミットします。SVN にコミットし直したい場合は、SVN/checkout の直後に作成した Hg リビジョンまで、最初にHg/upします。あなたSVN/up、単純なSVNリビジョンから更新したばかりなので、SVNの競合はありません。あなたはHg/commitHg/merge、そしてSVN/commitです。その間に誰かが SVN でコミットした場合は、次の操作を繰り返します: Hg/最後のクリーンな SVN リビジョンまで、SVN/upおよびHg/commit+merge

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

追加の利点: これは、Hg を使用している人々がバージョン管理の外に出ることなく、SVN コミッターとして機能する方法でもあります。

自動方法

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

于 2011-07-17T22:28:50.067 に答える