Mercurial > hg
changeset 19917:cff331cbb5ee
largefiles: make the protocol hack for replacing heads with lheads more precise
Before the hack would replace 'heads' with 'lheads' no matter where it occured
in a batch command string.
Instead we will use a regexp to more carefully only match the 'heads' commands.
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Thu, 10 Oct 2013 04:28:39 +0200 |
parents | fb583a1efef0 |
children | ae65192fd6b4 |
files | hgext/largefiles/proto.py |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/largefiles/proto.py Mon Apr 01 20:01:16 2013 -0700 +++ b/hgext/largefiles/proto.py Thu Oct 10 04:28:39 2013 +0200 @@ -5,6 +5,7 @@ import os import urllib2 +import re from mercurial import error, httppeer, util, wireproto from mercurial.wireproto import batchable, future @@ -166,9 +167,11 @@ args['cmds'] = args['cmds'].replace('heads ', 'lheads ') return ssholdcallstream(self, cmd, **args) +headsre = re.compile(r'(^|;)heads\b') + def httprepocallstream(self, cmd, **args): if cmd == 'heads' and self.capable('largefiles'): cmd = 'lheads' if cmd == 'batch' and self.capable('largefiles'): - args['cmds'] = args['cmds'].replace('heads ', 'lheads ') + args['cmds'] = headsre.sub('lheads', args['cmds']) return httpoldcallstream(self, cmd, **args)