1

私はいくつかのMercurialサーバーを持っており、人々は単一のユーザーhgを使用して変更をプッシュしており、ssh公開鍵認証のみを使用しており、それぞれが独自の鍵を持っています。

使用されている公開鍵に基づいてプッシュ用のユーザー名を選択するようにサーバーを構成するにはどうすればよいですか?

出来ますか?.hgrcそうでない場合、接続先の各アカウントマシンでユーザー名を構成する必要がない理由と代替手段は何ですか。

また、他の使用例について考えてみましょう: マシン上で root によって複製された hg リポジトリがあり、2 人の異なる人がこのマシンに (root として) 接続し、変更を行い、変更をコミットしてプッシュしようとしています。

これら 2 つは同じアカウントを使用していますが、異なる ssh キーを使用して接続されているため、誰がこれを行ったかを確認する必要があります。現在、これらは .hgrc で構成されたユーザーとして表示されます

4

1 に答える 1

2

「プッシュに使用されるユーザー名」、つまり、プッシュ時に認証に使用されるユーザー名とパスワードは、 で示されるユーザー名とは関係ありませんhg log

コミットすると、Mercurial は を実行しているユーザーの名前を記録しますhg commit。これは通常~/.hgrc、そのユーザー用に構成されます。この情報は変更セットの一部であり、後で変更することはできません。

hg commitとしてログインしているときに複数の異なる管理者が実行される特定のユースケースでは、でユーザー名を構成しないrootことをお勧めします。コミットすると、Modern Mercurial は中止されます。毎回使うのはもちろん面倒くさいので、環境変数の設定でユーザー名を設定できると助かります。そうすれば、永続的な構成を使用せずに、セッションごとにユーザー名を構成できます。~/.hgrchg commit -uHGUSER

HGUSERssh を実行したときに渡されるようにするには、ssh経由で環境変数を転送できますか? を参照してください。

このスキームを使用したとき、Ctrl-r を押してHGUSER. おそらく、シェル起動スクリプトで何かをセットアップして、キーを見て、ssh-add -Lそれに基づいて正しいユーザー名を設定することもできます。

于 2012-05-25T10:58:34.927 に答える