2

ソース管理をSVNからMercurialに移行する方法を調査しています。対処方法がわからないことの1つは、コミットでのユーザー名です。私が見たところ、Mercurial.iniで指定されている場合でも、HGユーザーに特定のユーザー名を使用させる方法はありません。ユーザーはhgcommitの-uフラグを使用してcommitでそれをオーバーライドできます。

企業はこれにどのように対処しますか?開発者Aが自分のリポジトリに開発者Bとして何かをコミットし、それを他の誰かにプッシュすることを妨げるものは何もありません。

ありがとう。

4

2 に答える 2

2

私たちの会社が大きい (4 人の開発者) とは言いませんが、これまでのところ問題になったことはありません。私の検索でも、その動作を防ぐ方法は見当たりませんでした。開発者間の信頼の問題に帰着すると思います。

関係ありませんが、約 2 年前に SVN から Mercurial への移行に成功したので、他の質問にもお答えできるかもしれません。


編集:アイデア:

どのようにトポロジーをセットアップする計画を立てていたのかわかりませんが、すべてのリポジトリーの中央リポジトリーとして機能するサーバーがあります。(中央サーバーをバイパスして) 開発者間で変更をプッシュすることは可能ですが、私たちは決してそれを行いません。常にローカルでコミットしてから、中央サーバーとの間でプッシュ/プルします。さらに、https および Windows 認証を使用して、この中央サーバーで認証します。

このようなことを計画している場合は、プッシュされる各コミットprecommitユーザー名が、ウェブサーバー。

これが機能するかどうかはわかりませんが、もっともらしく聞こえます。

于 2012-10-16T17:51:40.043 に答える
0

別の試行

疑似 CVCS ワークフローでのパスベースの ACL

「制御されたアナーキー」ワークフローを使用する場合 (p2p 通信は制御されておらず、制限され、信頼されており、単一の信頼できるソースが一般的なプッシュ ターゲットです)、「Branch Per Developer」パラダイムを使用できます。つまり、中央レポのACL 拡張では、次の制限が適用されます。

  • 誰もデフォルトブランチにプッシュできません
  • 各開発者は、自分の個人ブランチでのみプッシュできます(任意の名前で、名前は意味を持たず、追跡用の認証データはブランチ名です)
  • 信頼できるマージのみが repo-Central で機能します (開発ブランチをデフォルトにマージ、リベースなし | 開発ブランチでの履歴の書き換えなし)
  • デフォルト ブランチの各マージセットには認証ピースが含まれています - ソース ブランチ

署名ブランチ

コミットでユーザー名を信頼できない (そして信頼してはならない) 場合は、強力な暗号を信頼できます。Mercurial には少なくとも 2 つの拡張機能があり、コミットにデジタル署名できるため、どちらの場合にも独自の長所と短所がある著者に関する正確な (まあまあ、以下の注を参照) 情報が提供されます。

  • Commitsigs Extension WikiSigning Mercurial Changesets on Windows mini-HowTo は、開始のすべての側面を理解し、実証するのに十分なほど完全です。長所: 署名のための追加のコミットはありません。(設計上) 古い歴史的なコミットに署名することはできません。反対: 必要なコマンドの出力があまり良くない (ログと verifysigs については、Damian の投稿のスクリーンショットを参照)。これは GnuPG (PKI なし) であるため、理論的には、任意の名前の電子メールに対してキーペアを作成して使用することが可能であり、「余分な」 " 比較すると、1 人のユーザーに対して 2 つの異なるキーが表示されます
  • クイックスタートとして、 GPG 拡張機能とwiki からの承認レポート。長所: pgp-keys または openssl-certs (TBT!!!) (openssl は、発行された証明書の 1 つの企業ソースを意味します) を使用でき、sigcheck コマンドのより読みやすく有益な出力です。反対:

作業コピーのルートにある .hgsigs ファイルに変更をコミットするため、追加の変更セットを作成する必要があります。これにより、すべてのチェンジセットに署名することが不可能になります。ブランチがマージされる場合、.hgsigs ファイルも他のファイルと同様にマージする必要があります。

最後に、ファイルは WC の他のファイルと同様に、悪意のあるユーザーによって手動で変更される可能性があります。

編集とバグ修正 Openssl は GPG 拡張機能ではなく Commitsig で使用できます

于 2012-10-16T19:51:09.627 に答える