Show More
@@ -58,7 +58,6 b' from . import (' | |||
|
58 | 58 | localrepo, |
|
59 | 59 | lock as lockmod, |
|
60 | 60 | logcmdutil, |
|
61 | mdiff, | |
|
62 | 61 | mergestate as mergestatemod, |
|
63 | 62 | metadata, |
|
64 | 63 | obsolete, |
@@ -73,7 +72,6 b' from . import (' | |||
|
73 | 72 | repoview, |
|
74 | 73 | requirements, |
|
75 | 74 | revlog, |
|
76 | revlogutils, | |
|
77 | 75 | revset, |
|
78 | 76 | revsetlang, |
|
79 | 77 | scmutil, |
@@ -1029,54 +1027,22 b' def debugdeltafind(ui, repo, arg_1, arg_' | |||
|
1029 | 1027 | rev = int(rev) |
|
1030 | 1028 | |
|
1031 | 1029 | revlog = cmdutil.openrevlog(repo, b'debugdeltachain', file_, opts) |
|
1032 | ||
|
1033 | deltacomputer = deltautil.deltacomputer( | |
|
1034 | revlog, | |
|
1035 | write_debug=ui.write, | |
|
1036 | debug_search=not ui.quiet, | |
|
1037 | ) | |
|
1038 | ||
|
1039 | node = revlog.node(rev) | |
|
1040 | 1030 | p1r, p2r = revlog.parentrevs(rev) |
|
1041 | p1 = revlog.node(p1r) | |
|
1042 | p2 = revlog.node(p2r) | |
|
1043 | full_text = revlog.revision(rev) | |
|
1044 | btext = [full_text] | |
|
1045 | textlen = len(btext[0]) | |
|
1046 | cachedelta = None | |
|
1047 | flags = revlog.flags(rev) | |
|
1048 | ||
|
1049 | if source != b'full': | |
|
1050 |
|
|
|
1051 |
|
|
|
1052 | elif source == b'p1': | |
|
1053 | base_rev = p1r | |
|
1054 | elif source == b'p2': | |
|
1055 | base_rev = p2r | |
|
1056 | elif source == b'prev': | |
|
1057 | base_rev = rev - 1 | |
|
1058 | else: | |
|
1059 | raise error.InputError(b"invalid --source value: %s" % source) | |
|
1060 | ||
|
1061 | if base_rev != nullrev: | |
|
1062 | base_text = revlog.revision(base_rev) | |
|
1063 | delta = mdiff.textdiff(base_text, full_text) | |
|
1064 | ||
|
1065 | cachedelta = (base_rev, delta) | |
|
1066 | btext = [None] | |
|
1067 | ||
|
1068 | revinfo = revlogutils.revisioninfo( | |
|
1069 | node, | |
|
1070 | p1, | |
|
1071 | p2, | |
|
1072 | btext, | |
|
1073 | textlen, | |
|
1074 | cachedelta, | |
|
1075 | flags, | |
|
1076 | ) | |
|
1077 | ||
|
1078 | fh = revlog._datafp() | |
|
1079 | deltacomputer.finddeltainfo(revinfo, fh, target_rev=rev) | |
|
1031 | ||
|
1032 | if source == b'full': | |
|
1033 | base_rev = nullrev | |
|
1034 | elif source == b'storage': | |
|
1035 | base_rev = revlog.deltaparent(rev) | |
|
1036 | elif source == b'p1': | |
|
1037 | base_rev = p1r | |
|
1038 | elif source == b'p2': | |
|
1039 | base_rev = p2r | |
|
1040 | elif source == b'prev': | |
|
1041 | base_rev = rev - 1 | |
|
1042 | else: | |
|
1043 | raise error.InputError(b"invalid --source value: %s" % source) | |
|
1044 | ||
|
1045 | revlog_debug.debug_delta_find(ui, revlog, rev, base_rev=base_rev) | |
|
1080 | 1046 | |
|
1081 | 1047 | |
|
1082 | 1048 | @command( |
@@ -10,12 +10,15 b' import collections' | |||
|
10 | 10 | import string |
|
11 | 11 | |
|
12 | 12 | from .. import ( |
|
13 | mdiff, | |
|
13 | 14 | node as nodemod, |
|
15 | revlogutils, | |
|
14 | 16 | util, |
|
15 | 17 | ) |
|
16 | 18 | |
|
17 | 19 | from . import ( |
|
18 | 20 | constants, |
|
21 | deltas as deltautil, | |
|
19 | 22 | ) |
|
20 | 23 | |
|
21 | 24 | INDEX_ENTRY_DEBUG_COLUMN = [] |
@@ -619,3 +622,42 b' def debug_revlog(ui, revlog):' | |||
|
619 | 622 | b'deltas against other : ' |
|
620 | 623 | + fmt % pcfmt(numother_nad, numdeltas) |
|
621 | 624 | ) |
|
625 | ||
|
626 | ||
|
627 | def debug_delta_find(ui, revlog, rev, base_rev=nodemod.nullrev): | |
|
628 | """display the search process for a delta""" | |
|
629 | deltacomputer = deltautil.deltacomputer( | |
|
630 | revlog, | |
|
631 | write_debug=ui.write, | |
|
632 | debug_search=not ui.quiet, | |
|
633 | ) | |
|
634 | ||
|
635 | node = revlog.node(rev) | |
|
636 | p1r, p2r = revlog.parentrevs(rev) | |
|
637 | p1 = revlog.node(p1r) | |
|
638 | p2 = revlog.node(p2r) | |
|
639 | full_text = revlog.revision(rev) | |
|
640 | btext = [full_text] | |
|
641 | textlen = len(btext[0]) | |
|
642 | cachedelta = None | |
|
643 | flags = revlog.flags(rev) | |
|
644 | ||
|
645 | if base_rev != nodemod.nullrev: | |
|
646 | base_text = revlog.revision(base_rev) | |
|
647 | delta = mdiff.textdiff(base_text, full_text) | |
|
648 | ||
|
649 | cachedelta = (base_rev, delta) | |
|
650 | btext = [None] | |
|
651 | ||
|
652 | revinfo = revlogutils.revisioninfo( | |
|
653 | node, | |
|
654 | p1, | |
|
655 | p2, | |
|
656 | btext, | |
|
657 | textlen, | |
|
658 | cachedelta, | |
|
659 | flags, | |
|
660 | ) | |
|
661 | ||
|
662 | fh = revlog._datafp() | |
|
663 | deltacomputer.finddeltainfo(revinfo, fh, target_rev=rev) |
General Comments 0
You need to be logged in to leave comments.
Login now