diff --git a/hgext/lfs/blobstore.py b/hgext/lfs/blobstore.py index 0ebd94ac56d13862df511c8e56c76238c5d282d4_aGdleHQvbGZzL2Jsb2JzdG9yZS5weQ==..e7bb5fc4570cace261a2b00fdb2816bd100e59e8_aGdleHQvbGZzL2Jsb2JzdG9yZS5weQ== 100644 --- a/hgext/lfs/blobstore.py +++ b/hgext/lfs/blobstore.py @@ -125,7 +125,8 @@ self.ui = ui baseurl, authinfo = url.authinfo() self.baseurl = baseurl.rstrip('/') - self.urlopener = urlmod.opener(ui, authinfo) + useragent = 'mercurial/%s git/2.15.1' % util.version() + self.urlopener = urlmod.opener(ui, authinfo, useragent) self.retry = ui.configint('lfs', 'retry') def writebatch(self, pointers, fromstore): diff --git a/mercurial/url.py b/mercurial/url.py index 0ebd94ac56d13862df511c8e56c76238c5d282d4_bWVyY3VyaWFsL3VybC5weQ==..e7bb5fc4570cace261a2b00fdb2816bd100e59e8_bWVyY3VyaWFsL3VybC5weQ== 100644 --- a/mercurial/url.py +++ b/mercurial/url.py @@ -466,7 +466,7 @@ handlerfuncs = [] -def opener(ui, authinfo=None): +def opener(ui, authinfo=None, useragent=None): ''' construct an opener suitable for urllib2 authinfo will be added to the password manager @@ -512,8 +512,14 @@ # own distribution name. Since servers should not be using the user # agent string for anything, clients should be able to define whatever # user agent they deem appropriate. - agent = 'mercurial/proto-1.0 (Mercurial %s)' % util.version() - opener.addheaders = [(r'User-agent', pycompat.sysstr(agent))] + # + # The custom user agent is for lfs, because unfortunately some servers + # do look at this value. + if not useragent: + agent = 'mercurial/proto-1.0 (Mercurial %s)' % util.version() + opener.addheaders = [(r'User-agent', pycompat.sysstr(agent))] + else: + opener.addheaders = [(r'User-agent', pycompat.sysstr(useragent))] # This header should only be needed by wire protocol requests. But it has # been sent on all requests since forever. We keep sending it for backwards