2011-10-15 11 views
7

現時点では、私たちは現在SCM用にSubversionを使用しています。私はローカルのgit-svnミラーを設定して、それを私の主要な開発ワークスペースとして使用しています。私は今、基本的な機能に慣れています。チームの他の1人の開発者もGitに移動したいので、svnリポジトリのgitミラーの使用を検討しています。私はこの演習のあとにGerritも試してみたいと思います。SubversionリポジトリのGitミラーでGerritを設定する

  1. SVNリポジトリ用のgitミラー:

    私が想像セットアップは、これらの線に沿って何かです。これのマスターブランチはsvnのトランクと同期しています。

  2. 各機能について、トピックブランチが作成されます。これは、レビューが行われるGerritに関連付けられています。変更セットが承認されると、Gerritはトピックブランチバックマスターをマージします。

  3. gitweb、または同様、Webアプリケーションは、ブラウザ上のリポジトリを表示します。

  4. トランク以外のSubversion上の他の支店のための同様のプロセス。

私が望むのは、私がローカルのgitクローンとGerrit webappとしか相互作用しないということです。レビューされた変更をsvnにプッシュバックすると、自動的に実行されます。このようなものを設定するにはどうすればいいですか?

+0

変更をSubversionにプッシュバックする際に発生する競合は誰が処理しますか? –

+0

@Greg Hewgill Ahem、私は、Gerritがマスターブランチに変更をマージしようとすると失敗するはずだと仮定しています。 :-) –

+0

Heh、SVNブランチに変換せずに私のgitブランチをバックアップするだけでよいのですが、同様のことをやろうとしています。非常に私は私がsshを置くことを忘れて気づくまで 'git push'のために私のパスワードを繰り返し尋ねることは非常に混乱している://サーバー参照の開始時に! –

答えて

2

それはセットアップにリポジトリSVN

は、あなたのSVNリポジトリにSubGitをインストールして同期するGitの鏡可能です:作成したリンクのGitリポジトリにそれからちょうどセットアップアクセス(パス/

$ subgit install path/to/svn/repository 

を/ svn/repository/.git)をApacheなどで使用しています。そのGitリポジトリに移動するたびにSVNリビジョンに変換され、その逆もあります。

(SVNは存在しなかったかのように)だから、ゲリットで、あなたのチームのためにリンクさGitリポジトリを使用することができます。その後、SVNリポジトリをシャットダウンする(または使用を続ける)ことができます。シャットダウンする前に同期を停止するには:

6

残念ながら、(少なくとも、ではない多くの作業なし)すべてこれを自動的に行うことはできません。ここであなたを得ることができますいくつかのステップが接近している:

  1. がヘリット・サーバ
  2. SVNから取得し、あなたのgitのクローンにプッシュされますSVNのフックや定期的なタスクを作成するには、あなたのgitのクローンを設定
  3. ヘリットが内蔵されていgitwebのバージョン、あなたはゲリット・サーバーであり
  4. 覆われているので、作成ステップ4は、物事のウィルを失敗したときにグレッグのよう

は、上記のSVNにプッシュバックされますchange merged hook私はトリッキーです。 gerritでgitリポジトリをリセットしてsvnと一致させ、変更を再提出する必要があります。 /場合はSVNをドロップし、:-)

幸運のgit /ヘリットを使用するためにあなたのチームの残りの部分を納得させるとき、これははるかに簡単になります!

関連する問題