Mercurial のプロキシは外部リポジトリの既定のままにしつつ、内部ホストは直接接続できます。公開 HTTP 経路では、既定のエンドポイント用のホストとポートをHTTP プロキシ一覧から選びます。

[http_proxy]
host = proxy.example:8080
no = hg.internal.example,localhost
always = false

no の値はカンマ区切りのホスト名一覧です。Mercurial は always=true を、localhost やその一覧の項目に対してもプロキシ利用を強制するものとして文書化しています。そのため no にホストを追加してもこの上書きが残っていれば、その経路は変わらないことがあります。

1 回の実行だけ値を上書きする場合は、設定を書き換えずに次のようにします。

hg --config http_proxy.always=false    --config http_proxy.no=hg.internal.example incoming

リポジトリの設定済み既定パスが実際にそのホストを指している必要があります。この例はコマンド用に no の値を置き換えます。その実行で他の必須項目も必要なら、それらも含めてください。

ユーザー設定・リポジトリ設定・システム設定が食い違う場合は、hg config --source で有効な設定を特定します。その出力を共有する前にパスワードを削除してください。

これらの制御はウェブ経由のリポジトリアクセスに適用されます。ssh:// リポジトリは別のトランスポートを使います。直接の HTTP 経路にも、依然としてネットワーク経路とリポジトリ自身の認証情報が必要です。

関連記事