有没有办法配置 Mercurial 在 user-agent header 中发送的内容?

Is there a way to configure what mercurial sends in the user-agent header?

使用 git,您可以 ,但我不知道 mercurial 中有类似的设置。有人知道这样做的方法吗?

没有直接支持它,但应该可以通过扩展启用它:

from mercurial import url, extensions

def wrap_opener(orig, ui, authinfo=None):
  result = orig(ui, authinfo)
  agent = ui.config("http", "useragent")
  if agent:
    ah = result.addheaders
    for i in xrange(len(ah)):
      if ah[i][0] == "User-agent":
        ah[i] = ("User-agent", agent)
  return result

def uisetup(ui):
  extensions.wrapfunction(url, "opener", wrap_opener)

这允许您在 ~/.hgrc.hg/hrc 中设置用户代理:

[http]
useragent = "..."

警告:我只测试了扩展不会破坏 Mercurial 并且开启者 object 被适当修改,我实际上没有验证是否发送了正确的 User-agent header跨网络。