Mercurial > public > mercurial-scm > hg
comparison mercurial/debugcommands.py @ 49164:a932cad26d37
branching: merge stable into default
author | Rapha?l Gom?s <rgomes@octobus.net> |
---|---|
date | Wed, 04 May 2022 18:17:44 +0200 |
parents | ea98850a136e 308e45f7b455 |
children | 22279b604a88 |
comparison
equal
deleted
inserted
replaced
49147:10b9f11daf15 | 49164:a932cad26d37 |
---|---|
44 cmdutil, | 44 cmdutil, |
45 color, | 45 color, |
46 context, | 46 context, |
47 copies, | 47 copies, |
48 dagparser, | 48 dagparser, |
49 dirstateutils, | |
49 encoding, | 50 encoding, |
50 error, | 51 error, |
51 exchange, | 52 exchange, |
52 extensions, | 53 extensions, |
53 filemerge, | 54 filemerge, |
937 ), | 938 ), |
938 (b'', b'dates', True, _(b'display the saved mtime')), | 939 (b'', b'dates', True, _(b'display the saved mtime')), |
939 (b'', b'datesort', None, _(b'sort by saved mtime')), | 940 (b'', b'datesort', None, _(b'sort by saved mtime')), |
940 ( | 941 ( |
941 b'', | 942 b'', |
943 b'docket', | |
944 False, | |
945 _(b'display the docket (metadata file) instead'), | |
946 ), | |
947 ( | |
948 b'', | |
942 b'all', | 949 b'all', |
943 False, | 950 False, |
944 _(b'display dirstate-v2 tree nodes that would not exist in v1'), | 951 _(b'display dirstate-v2 tree nodes that would not exist in v1'), |
945 ), | 952 ), |
946 ], | 953 ], |
947 _(b'[OPTION]...'), | 954 _(b'[OPTION]...'), |
948 ) | 955 ) |
949 def debugstate(ui, repo, **opts): | 956 def debugstate(ui, repo, **opts): |
950 """show the contents of the current dirstate""" | 957 """show the contents of the current dirstate""" |
958 | |
959 if opts.get("docket"): | |
960 if not repo.dirstate._use_dirstate_v2: | |
961 raise error.Abort(_(b'dirstate v1 does not have a docket')) | |
962 | |
963 docket = repo.dirstate._map.docket | |
964 ( | |
965 start_offset, | |
966 root_nodes, | |
967 nodes_with_entry, | |
968 nodes_with_copy, | |
969 unused_bytes, | |
970 _unused, | |
971 ignore_pattern, | |
972 ) = dirstateutils.v2.TREE_METADATA.unpack(docket.tree_metadata) | |
973 | |
974 ui.write(_(b"size of dirstate data: %d\n") % docket.data_size) | |
975 ui.write(_(b"data file uuid: %s\n") % docket.uuid) | |
976 ui.write(_(b"start offset of root nodes: %d\n") % start_offset) | |
977 ui.write(_(b"number of root nodes: %d\n") % root_nodes) | |
978 ui.write(_(b"nodes with entries: %d\n") % nodes_with_entry) | |
979 ui.write(_(b"nodes with copies: %d\n") % nodes_with_copy) | |
980 ui.write(_(b"number of unused bytes: %d\n") % unused_bytes) | |
981 ui.write( | |
982 _(b"ignore pattern hash: %s\n") % binascii.hexlify(ignore_pattern) | |
983 ) | |
984 return | |
951 | 985 |
952 nodates = not opts['dates'] | 986 nodates = not opts['dates'] |
953 if opts.get('nodates') is not None: | 987 if opts.get('nodates') is not None: |
954 nodates = True | 988 nodates = True |
955 datesort = opts.get('datesort') | 989 datesort = opts.get('datesort') |
978 else: | 1012 else: |
979 mode = b'%3o' % (mode & 0o777 & ~util.umask) | 1013 mode = b'%3o' % (mode & 0o777 & ~util.umask) |
980 ui.write(b"%c %s %10d %s%s\n" % (state, mode, size, timestr, filename)) | 1014 ui.write(b"%c %s %10d %s%s\n" % (state, mode, size, timestr, filename)) |
981 for f in repo.dirstate.copies(): | 1015 for f in repo.dirstate.copies(): |
982 ui.write(_(b"copy: %s -> %s\n") % (repo.dirstate.copied(f), f)) | 1016 ui.write(_(b"copy: %s -> %s\n") % (repo.dirstate.copied(f), f)) |
983 | |
984 | |
985 @command( | |
986 b'debugdirstateignorepatternshash', | |
987 [], | |
988 _(b''), | |
989 ) | |
990 def debugdirstateignorepatternshash(ui, repo, **opts): | |
991 """show the hash of ignore patterns stored in dirstate if v2, | |
992 or nothing for dirstate-v2 | |
993 """ | |
994 if repo.dirstate._use_dirstate_v2: | |
995 docket = repo.dirstate._map.docket | |
996 hash_len = 20 # 160 bits for SHA-1 | |
997 hash_bytes = docket.tree_metadata[-hash_len:] | |
998 ui.write(binascii.hexlify(hash_bytes) + b'\n') | |
999 | 1017 |
1000 | 1018 |
1001 @command( | 1019 @command( |
1002 b'debugdiscovery', | 1020 b'debugdiscovery', |
1003 [ | 1021 [ |