7

現在、SCMにはSubversionを使用しています。ローカルのgit-svnミラーをセットアップし、それをプライマリ開発ワークスペースとして使用します。私は今、基本的な機能に慣れています。チームの他の1人の開発者もGitに移行したいと考えているため、svnリポジトリのgitミラーの使用を検討しています。この演習と一緒にGerritも試してみたいと思います。

私が想像するセットアップは、これらの線に沿ったものです。

  1. svnリポジトリのgitミラー。この上のマスターブランチは、svnのトランクと同期しています。

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

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

  4. トランク以外のSubversionの他のブランチの同様のプロセス。

基本的に、私が欲しいのは、ローカルのgitクローンとGerritWebアプリとのみ対話することです。レビューされた変更をsvnにプッシュバックすることは自動的に行われるはずです。このような設定をするにはどうすればよいですか?

4

2 に答える 2

6

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

  1. Gerritサーバーでgitクローンを設定します
  2. svnからフェッチしてgitクローンにプッシュするsvnフックまたは定期的なタスクを作成します
  3. Gerritにはgitwebのバージョンが組み込まれているので、そこでカバーされます
  4. Gerritサーバーで、svnにプッシュバックする変更マージフックを作成します

上記のグレッグのように、ステップ4が失敗すると、物事はトリッキーになります。svnと一致するようにGerritのgitリポジトリをリセットし、変更を再送信する必要があります。チームの他のメンバーにsvnを削除してgit/Gerritを使用するように説得した場合、これははるかに簡単になります:-)

幸運を!

于 2011-10-29T02:37:18.563 に答える
2

リポジトリSVNと同期するGitミラーをセットアップすることが可能です

SubGitをSVNリポジトリにインストールします。

$ subgit install path/to/svn/repository

次に、Apacheなどを使用して作成されたリンクされたGitリポジトリ(path / to / svn / repository / .git)へのアクセスを設定します。そのGitリポジトリへのすべてのプッシュはSVNリビジョンに変換され、その逆も同様です。

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

$ subgit uninstall path/to/svn/repository
于 2012-07-31T00:46:41.503 に答える