通常はPerforceとSmartBearのCode CollaboratorをBig Corp
使用していましたが、特定のプロジェクトではMercurialを使用する予定です。
Code CollaboratorはMercurial(バージョン5を使用しています)をサポートしており、コードレビューの最適な時間(サーバーへのコミット/プッシュ中)プロセスが最適な時間であるかどうかを判断しようとしています。
ありがとう
通常はPerforceとSmartBearのCode CollaboratorをBig Corp
使用していましたが、特定のプロジェクトではMercurialを使用する予定です。
Code CollaboratorはMercurial(バージョン5を使用しています)をサポートしており、コードレビューの最適な時間(サーバーへのコミット/プッシュ中)プロセスが最適な時間であるかどうかを判断しようとしています。
ありがとう
回答:
私たちは最近、私の会社でほぼ同じことを実際に経験しました。これが私たちのしたことです:
1つのサーバーにすべてのリポジトリの最終的なコピーを保持します。開発者がコードを「チェックアウト」したい場合、彼らはこのサーバーに行き、そこのリポジトリからクローンを作成します。同様に、開発サイクルが完了すると、コードも適切なリポジトリにプッシュされます。
安定したリポジトリを開発リポジトリから分離します。コードを安定したリポジトリにプッシュする前にレビューする必要があります。(安定したリポジトリには、現在運用中のコードが含まれている必要があり、保留中のコードプロモーションのみが異なるため、これは重要です。)
コードレビューを実施するために、pretxnchangegroup
フックを作成しました(HG Bookに文書化されています)。このフックが実行されると、コードの変更が永続的であるかのようにリポジトリを見ることができるという事実を活用しますが、プッシュを防ぐ機能も提供します。基本的に、プロセスは次のとおりです。
本質的に、これは開発者に非常に合理化されたプロセスを提供し(必要なのはhgプッシュのみ)、すべてのコードがレビューされることを保証しながら、コードレビューの作成を完全に自動化します(および追加の変更されたファイルをレビューにアップロードします) 。
注:これは非常に単純なプロセスであり(比較的新しい)、すべてのユーザーに有効なわけではなく、まだ実行されていない設計上のバグがある可能性があります。しかし、これまでのところ、非常にうまく機能しています。
これは、リポジトリー構造がどのようになっているか、何を達成しようとしているかによって異なります。DVCSの世界では実際に「事前プッシュ」を意味する「事前コミット」レビューを行うことを好みます。DVCSは(従来のSCMと比較して)この環境で優れています。ローカルの変更を保存し、ワークスペースを元に戻して他の作業を行える機能が組み込まれているためです。
プッシュ後のレビューを行う場合、理想的なワークフローはリポジトリ構造に大きく依存します。たとえば、Gitリポジトリレイアウトに関するこの記事で説明したようなリポジトリ構造を想定します。この場合、にマージされている変更を確認することをお勧めしますdevelop
。機能ブランチでの個々のコミットは、レビューする意味がない場合があります。明らかに、すべてhotfixes
へのマージとともにレビューする必要がありますmaster
。
代わりに、人々が直接チェックインする単一の統合ブランチがある場合、そのブランチへのすべてのプッシュをレビューする必要があります。それはおそらくわずかに効率が悪いですが、それでも動作する可能性があります。この環境では、リリースをカットする前に、プッシュされたすべての変更を確認する必要があります。それは難しいかもしれません。
b)に関しては、SmartBearサポート(support@smartbear.com)に直接メールすることをお勧めします。私たち(はい、SmartBearで働いています)は、パスの問題を解決するお手伝いをさせていただきますが、この質問には問題を修正するのに十分な情報がありません。通常のプロセスは、インストーラーを実行するだけで、すべてが機能します。どうやらそのプロセスで何かがおかしくなったようです。