##// END OF EJS Templates
convert: use git executable only, with subcommands...
convert: use git executable only, with subcommands The latest GIT has some changes in the way it is installed. Only the 'git' executable need to be in the path. All other commands are treated as sub commands of 'git'.

File last commit:

r2859:345bac2b default
r6837:e30c56f3 default
Show More
httprangereader.py
28 lines | 862 B | text/x-python | PythonLexer
# httprangereader.py - just what it says
#
# Copyright 2005, 2006 Matt Mackall <mpm@selenic.com>
#
# This software may be used and distributed according to the terms
# of the GNU General Public License, incorporated herein by reference.
import byterange, urllib2
class httprangereader(object):
def __init__(self, url):
self.url = url
self.pos = 0
def seek(self, pos):
self.pos = pos
def read(self, bytes=None):
opener = urllib2.build_opener(byterange.HTTPRangeHandler())
urllib2.install_opener(opener)
req = urllib2.Request(self.url)
end = ''
if bytes:
end = self.pos + bytes - 1
req.add_header('Range', 'bytes=%d-%s' % (self.pos, end))
f = urllib2.urlopen(req)
data = f.read()
if bytes:
data = data[:bytes]
return data