Show More
@@ -993,6 +993,26 b' def perfrevlogrevision(ui, repo, file_, ' | |||||
993 | node = r.lookup(rev) |
|
993 | node = r.lookup(rev) | |
994 | rev = r.rev(node) |
|
994 | rev = r.rev(node) | |
995 |
|
995 | |||
|
996 | def getrawchunks(data, chain): | |||
|
997 | start = r.start | |||
|
998 | length = r.length | |||
|
999 | inline = r._inline | |||
|
1000 | iosize = r._io.size | |||
|
1001 | buffer = util.buffer | |||
|
1002 | offset = start(chain[0]) | |||
|
1003 | ||||
|
1004 | chunks = [] | |||
|
1005 | ladd = chunks.append | |||
|
1006 | ||||
|
1007 | for rev in chain: | |||
|
1008 | chunkstart = start(rev) | |||
|
1009 | if inline: | |||
|
1010 | chunkstart += (rev + 1) * iosize | |||
|
1011 | chunklength = length(rev) | |||
|
1012 | ladd(buffer(data, chunkstart - offset, chunklength)) | |||
|
1013 | ||||
|
1014 | return chunks | |||
|
1015 | ||||
996 | def dodeltachain(rev): |
|
1016 | def dodeltachain(rev): | |
997 | if not cache: |
|
1017 | if not cache: | |
998 | r.clearcaches() |
|
1018 | r.clearcaches() | |
@@ -1003,24 +1023,15 b' def perfrevlogrevision(ui, repo, file_, ' | |||||
1003 | r.clearcaches() |
|
1023 | r.clearcaches() | |
1004 | r._chunkraw(chain[0], chain[-1]) |
|
1024 | r._chunkraw(chain[0], chain[-1]) | |
1005 |
|
1025 | |||
1006 |
def do |
|
1026 | def dorawchunks(data, chain): | |
1007 | if not cache: |
|
1027 | if not cache: | |
1008 | r.clearcaches() |
|
1028 | r.clearcaches() | |
1009 |
|
1029 | getrawchunks(data, chain) | ||
1010 | start = r.start |
|
|||
1011 | length = r.length |
|
|||
1012 | inline = r._inline |
|
|||
1013 | iosize = r._io.size |
|
|||
1014 | buffer = util.buffer |
|
|||
1015 | offset = start(chain[0]) |
|
|||
1016 |
|
1030 | |||
1017 | for rev in chain: |
|
1031 | def dodecompress(chunks): | |
1018 | chunkstart = start(rev) |
|
1032 | decomp = r.decompress | |
1019 | if inline: |
|
1033 | for chunk in chunks: | |
1020 | chunkstart += (rev + 1) * iosize |
|
1034 | decomp(chunk) | |
1021 | chunklength = length(rev) |
|
|||
1022 | b = buffer(data, chunkstart - offset, chunklength) |
|
|||
1023 | r.decompress(b) |
|
|||
1024 |
|
1035 | |||
1025 | def dopatch(text, bins): |
|
1036 | def dopatch(text, bins): | |
1026 | if not cache: |
|
1037 | if not cache: | |
@@ -1039,6 +1050,7 b' def perfrevlogrevision(ui, repo, file_, ' | |||||
1039 |
|
1050 | |||
1040 | chain = r._deltachain(rev)[0] |
|
1051 | chain = r._deltachain(rev)[0] | |
1041 | data = r._chunkraw(chain[0], chain[-1])[1] |
|
1052 | data = r._chunkraw(chain[0], chain[-1])[1] | |
|
1053 | rawchunks = getrawchunks(data, chain) | |||
1042 | bins = r._chunks(chain) |
|
1054 | bins = r._chunks(chain) | |
1043 | text = str(bins[0]) |
|
1055 | text = str(bins[0]) | |
1044 | bins = bins[1:] |
|
1056 | bins = bins[1:] | |
@@ -1048,7 +1060,8 b' def perfrevlogrevision(ui, repo, file_, ' | |||||
1048 | (lambda: dorevision(), 'full'), |
|
1060 | (lambda: dorevision(), 'full'), | |
1049 | (lambda: dodeltachain(rev), 'deltachain'), |
|
1061 | (lambda: dodeltachain(rev), 'deltachain'), | |
1050 | (lambda: doread(chain), 'read'), |
|
1062 | (lambda: doread(chain), 'read'), | |
1051 |
(lambda: do |
|
1063 | (lambda: dorawchunks(data, chain), 'rawchunks'), | |
|
1064 | (lambda: dodecompress(rawchunks), 'decompress'), | |||
1052 | (lambda: dopatch(text, bins), 'patch'), |
|
1065 | (lambda: dopatch(text, bins), 'patch'), | |
1053 | (lambda: dohash(text), 'hash'), |
|
1066 | (lambda: dohash(text), 'hash'), | |
1054 | ] |
|
1067 | ] |
General Comments 0
You need to be logged in to leave comments.
Login now