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