10

私は中央リポジトリにMercurialを使用している小さな分散チームにいます。私たちはそれぞれ、sshを介して独自のLinuxボックスにクローンを作成します。私たちの目的は、変更を中央リポジトリにプッシュする前にお互いの作業を確認して、中央の先端をきれいに保つことです。異なるLinuxボックスの開発者間でコードを共有するための良い方法は何ですか?Mercurialは初めてです。私が考えることができるオプションは(経験ではなく読書を通して)次のとおりです。

1:作成者は、すべてのローカル変更をコミットし、Centralのヒントを使用して作業中のクローンを更新します。バンドルに含めるローカル回転数を指定する方法がある場合、作成者はhgバンドルを使用します。(実験によると、「バンドル」はコミットされていない変更のみを取得します。セントラルが認識していない以前のローカルコミットがある場合でも)作成者はバンドルファイルをレビュー担当者に取得します。Reviewerは、Centralのヒントから新しいクリーンなクローンを作成し、バンドルをそのクローンにインポートします。また、

2:作成者とレビュー担当者の両方がCentralのヒントからフェッチした後、作成者はパッチを使用し、レビュー担当者はパッチをインポートします。また、

3:著者がレビューアにプッシュするか、レビューアが著者からプルする(しかし、正確には?私が読んだのは、元の提供されたリポジトリへのプッシュとプル、および/または異なるLinuxボックス間ではなく同じボックス上でのプッシュとプルのみです)。

4:セントラルにプッシュする前にコードを確認するのを忘れます。タグを使用してレビュー済みかどうかを識別し、Hudson(すでに機能している)を使用して最新の安全なビルドにタグを付けて、チームメンバーがどちらからプルするかを認識できるようにします。

チームがMercurialを使用してコードレビューを行っている場合、レビュー担当者に変更を確認させるにはどうすればよいですか?

4

3 に答える 3

6

これらのほとんどは可能ですが、いくつかは他よりも面倒です。

  1. 中央リポジトリのヒントを次のように指定することで、バンドルを使用できます--base
    hg bundle --base 4a3b2c1d review.bundle
  2. bundle を使用することもできます。そうすれば、変更セットのデータも含まれます。
  3. 共通の祖先を持つ任意のリポジトリに (から) プッシュ (およびプル) できます。同僚の 1 人からプルしたい場合、その同僚はhg serve自分のマシンで実行するだけでよく、あなたもプルできるようになります。
  4. これも機能しますが、複数のヘッドを維持し、マージに注意する必要があります。そうしないと、レビューされていない変更セットに基づいて安定した変更を簡単に行うことができ、後でその未レビューの変更セットを修正する必要がある場合に元に戻すのが難しくなります。

あなたが提示したオプションのうち、#1と#3は、お互いのボックスに到達できるかどうかに応じて、おそらく最も簡単です.

関連するメモ: これは同僚に寄せられた質問で、私は (Fog Creek の) Mercurial ホスティングおよびコード レビュー ツールであるKilnの開発を開始しました。私たちの計画と最初のプロトタイプでは、複数のリポジトリ、1 つの「中央」リポジトリ、および多数の「レビュー」リポジトリを保持します。レビュー プロセスは、中央リポジトリをサーバー上のレビュー リポジトリに複製し、差分を取得および表示するためのシンプルな Web インターフェイスを使用して、2 つのリポジトリ間で完全なリポジトリ差分を実行することによって開始されます。

私たちはそのワークフローをかなり進化させましたが、未レビューの変更をプッシュするブランチ リポジトリと、変更を中央リポジトリにプッシュする前にレビューするインターフェイスを持つという一般的な考え方は変わりません。ここで宣伝したくありませんが、試してみることをお勧めします。

于 2010-08-27T17:05:27.227 に答える
3

この質問に対する半分の答えは、 Mercurial拡張機能を備えたReviewBoardを使用することです。次のコマンドを発行することにより、レビューのために特定のリビジョンをプッシュできます

hgレビュー後のヒント

于 2011-06-08T22:29:27.427 に答える